访问C库函数调用的LLVM IR

Min*_*Gao 1 llvm clang llvm-ir

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

Eli*_*sky 7

你不能从得到这个你的程序,因为它不包含这些功能.即使静态链接,可执行文件也很可能不会,因为libc(其中printf和其他C库函数来自)作为目标文件存在于您的计算机上,而不是LLVM IR.

可以做的是编译C库之一(尝试一些小而简单的像ulibcnewlib)与LLVM.然后你可以从中发出LLVM IR.FWIW,Chrome Portable Native Client项目执行此操作newlib- 您可以使用此页面上的说明来构建它并自行复制这些步骤.