LLVM IR本机方法

LLVM IR本机方法,llvm,llvm-ir,Llvm,Llvm Ir,作为一个宠物项目,我正在编写自己的编程语言,并试图编译成LLVMIR 在看了一些教程和示例之后,我对它的工作原理有点习惯了,但还有一件事我不太确定 在示例中,大多数使用 declare i32 @puts(i8* nocapture) nounwind 写入控制台。我认为它们被称为原生方法,但谷歌搜索并不能真正帮助我 但是,我希望有更多这样的功能,例如从控制台读取数据、文件I/o或其他功能 在哪里可以找到我可以使用的所有函数(如puts)的列表 此外,这些功能是否特定于平台?我是否需要基于我正

作为一个宠物项目,我正在编写自己的编程语言,并试图编译成LLVMIR

在看了一些教程和示例之后,我对它的工作原理有点习惯了,但还有一件事我不太确定

在示例中,大多数使用

declare i32 @puts(i8* nocapture) nounwind
写入控制台。我认为它们被称为原生方法,但谷歌搜索并不能真正帮助我

但是,我希望有更多这样的功能,例如从控制台读取数据、文件I/o或其他功能

在哪里可以找到我可以使用的所有函数(如puts)的列表

此外,这些功能是否特定于平台?我是否需要基于我正在构建的操作系统的其他函数?

是C标准库的一部分,如果您链接到此库,您可以使用它并期望得到C标准的任何保证

如果链接C标准库,则可以使用其中的所有函数。有关更多信息,请查看C标准和/或C标准库供应商提供的文档

当然,您也可以链接到其他库,只要您知道如何查找和调用它们的函数。对于C库,使用它们编写一个小型C程序并使用clang-emit llvm编译它可能是最容易的,这样可以了解如何正确地调用它们

C标准库应该是可移植的