编写 C 函数的正确方法是什么,然后我将其链接到我的 llvm IR 程序。
这就是我目前编译程序的方式:
clang -c out.ll -o out.o
clang out.o -o out
这大致是我的 C 函数:
void __write(char *s)
我在 llvm 中声明如下:
declare void @__write(i8*)
我真的不知道如何将这两者联系起来,因为我是 Clang 和 LLVM 的初学者。
我已经搜索了很多这个主题,但到目前为止没有找到明确的答案。
如果您使用 llvm jit,则应该将带有函数指针的 SymbolMap 注册到 JITDylib;
有一个完整的示例代码来声明 extern C 函数并稍后在 LLVM IR 中使用它们。 外部 C 函数