使用cmake编译cpp文件时如何获取bitcode?
How to get the bitcode when I use the cmake to compile the cppfile?
我搜索了可以使用命令行尝试的教程:clang -emit-llvm -o file.bc
但是如何在 cmakelists 中编写它。我必须从源代码文件中获取所有的位码文件。
可能的几个选项:
- 您可以为所有来源添加特定标志:
set ( CMAKE_C_FLAGS "-emit-llvm")
- 或者如果你还想同时拥有 .bc 文件和 .o 文件,你或许应该引入自定义编译命令,这实际上是两个命令:第一个编译 .bc 文件,第二个要么只编译 . o 文件或通过
llc
. 将 .bc 文件转换为 .o 文件
- 如果您使用-flto 标志进行编译,那么所有.o 文件实际上都是.bc 文件(例如,您可以使用llvm-bcanalyzer 检查它)。但在这种情况下,你必须 link 它与
ld.lld
我搜索了可以使用命令行尝试的教程:clang -emit-llvm -o file.bc
但是如何在 cmakelists 中编写它。我必须从源代码文件中获取所有的位码文件。
可能的几个选项:
- 您可以为所有来源添加特定标志:
set ( CMAKE_C_FLAGS "-emit-llvm")
- 或者如果你还想同时拥有 .bc 文件和 .o 文件,你或许应该引入自定义编译命令,这实际上是两个命令:第一个编译 .bc 文件,第二个要么只编译 . o 文件或通过
llc
. 将 .bc 文件转换为 .o 文件
- 如果您使用-flto 标志进行编译,那么所有.o 文件实际上都是.bc 文件(例如,您可以使用llvm-bcanalyzer 检查它)。但在这种情况下,你必须 link 它与
ld.lld