我正在尝试使用clang / llvm构建linux内核。我正在尝试在生成.o文件的同时保存.bc文件。我发现LLVM具有API“ writebitcodetofile”,可以将bc代码保存到某些文件中,但是我不确定如何使用它。
有许多标志可以为您做到这一点:
-flto
启用链接时优化,该链接时优化使用LLVM位代码。在这种情况下(几乎),所有.o
文件实际上都将包含位代码。-save-temps
告诉clang将每个中间阶段的结果放入单独的文件中。简单的clang -save-temps main.c
可以分别输出main.o
,main.bc
,main.i
,main.s
或目标文件,位代码文件,预处理文件和汇编文件。-fembed-bitcode
告诉clang将文件的位码表示形式包含到生成的目标文件中。您可以在此处了解更多信息:https://jonasdevlieghere.com/libebc-ebcutil/但是请注意,您不会获得程序集文件的位代码。