访问C库函数调用的LLVM IR



我有一个C代码(例如称为a.C),它调用函数printf,stdio.h/curses.h中的textcolorgotoxy。a.c的LLVM-IR将只声明这些函数,并显示这些函数已被调用,这意味着它没有在.ll中实现这些函数的详细IR。有什么方法可以访问这些IR或将所有实现(a.c的IR+这些函数调用的IR)放在一个.ll文件中吗?我对LLVM不是很了解,所以如果我在概念上犯了一些错误,请告诉我。

您无法从程序中获取此函数,因为它不包含这些函数。即使静态链接,可执行文件也很可能不会,因为libc(printf和其他C库函数的来源)在您的机器上是作为对象文件存在的,而不是LLVM IR

可以使用LLVM编译一个C库(尝试一些小而简单的东西,如ulibcnewlib)。然后您可以从中发射LLVM IR。FWIW,Chrome Portable Native Client项目可以做到这一点(使用newlib)-您可以使用本页上的说明来构建它并自己复制步骤。

最新更新