【发布时间】:2021-05-16 12:46:31
【问题描述】:
所以,我一直在使用 Rust 为简单的 lisp 编写编译器,并使用 Inkwell crate 生成 LLVM IR。在尝试找到一种将值打印到标准输出的方法时,我遇到了许多使用 print 函数的答案,就像在 C/C++ 中一样。它似乎在大多数情况下都可以正常工作。
然而,只有函数声明显示在生成的 IR 中,所以这可能意味着定义被 llvm 本身链接到某个地方(目前使用 lli 解释器,因为它更容易测试)。无论如何,我只是想了解这个函数的定义位置。就像在 llvm 中定义的核心模块一样吗?还是使用依赖于类 Unix 平台的 printf 而不是 llvm 的东西,因为大多数 llvm 函数似乎都有“llvm”前缀?
【问题讨论】: