链接后如何获取位码llvm?

Haz*_*aza 6 llvm clang llvm-ir

我正在尝试为与某些静态库链接的文件获取 LLVM IR。

我尝试使用llvm-link. 它只是将 .bc 文件复制到一个文件中(不像本地链接)。

clang -L$(T_LIB_PATH) -lpthread -emit-llvm给出一个错误:emit-llvm can not be used with linking。传递-c选项时,它会警告未使用链接选项。

我的主要目标是获取包含所有已解析符号和引用的 .bc 文件。我如何使用 clang 3.4 版实现这一点?

小智 3

您可以看看wllvm。它是编译器的包装器,可以构建项目并提取整个程序的 LLVM 位码。

对于 C 和 C++,您需要分别使用wllvmwllvm++(设置一些环境变量后)。