我有一个C代码(例如称为a.C),它调用函数printf
,stdio.h/curses.h中的textcolor
和gotoxy
。a.c的LLVM-IR将只声明这些函数,并显示这些函数已被调用,这意味着它没有在.ll中实现这些函数的详细IR。有什么方法可以访问这些IR或将所有实现(a.c的IR+这些函数调用的IR)放在一个.ll文件中吗?我对LLVM不是很了解,所以如果我在概念上犯了一些错误,请告诉我。
您无法从程序中获取此函数,因为它不包含这些函数。即使静态链接,可执行文件也很可能不会,因为libc(printf
和其他C库函数的来源)在您的机器上是作为对象文件存在的,而不是LLVM IR
可以使用LLVM编译一个C库(尝试一些小而简单的东西,如ulibc
或newlib
)。然后您可以从中发射LLVM IR。FWIW,Chrome Portable Native Client项目可以做到这一点(使用newlib
)-您可以使用本页上的说明来构建它并自己复制步骤。