当我使用 cmake 编译 cpp 文件时如何获取位码?



我已经搜索了可以使用命令行尝试的教程:clang -emit-llvm -o file.bc但是如何在cmakelist中编写它。我必须从源代码文件中获取所有位码文件。

有几个选项:

  • 您可以为所有源添加特定标志:set ( CMAKE_C_FLAGS "-emit-llvm")
  • 或者,如果您仍然希望同时拥有 .bc 文件和 .o 文件,您可能应该引入自定义编译命令,它实际上是两个命令:第一个编译 .bc 文件,其次只是编译 .o 文件或通过llc将 .bc 文件转换为 .o 文件。
  • 如果使用 -flto 标志进行编译,则所有 .o 文件实际上都是 .bc 文件(例如,您可以使用 llvm-bcanalyzer 进行检查(。但是在这种情况下,您必须将其与ld.lld链接

最新更新