我希望 clang 将我的 C/C++ 代码编译为 LLVM 位代码而不是二进制可执行文件。我怎样才能做到这一点?
如果我有 LLVM 位代码,如何进一步将其编译为二进制可执行文件?
我想在编译为二进制可执行文件之前将一些我自己的代码添加到 LLVM 位代码中。
给定一些 C/C++ 文件foo.c
:
> clang -S -emit-llvm foo.c
生产foo.ll
这是一个 LLVM IR 文件。
The -emit-llvm
选项也可以直接传递给编译器前端,而不是通过以下方式传递给驱动程序-cc1
:
> clang -cc1 foo.c -emit-llvm
生产foo.ll
和他们的。-cc1
添加了一些很酷的选项,例如-ast-print
。查看-cc1 --help
更多细节。
要将 LLVM IR 进一步编译为汇编,请使用llc
tool:
> llc foo.ll
生产foo.s
与程序集(默认为您运行它的机器架构)。llc
是 LLVM 工具之一 -这是它的文档.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)