使用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