- 将C文件编译为LLVM bitcode 文件
clang -o3 -emit-llvm hello.c -c -o hello.bc
- 由于.bc 是bitcode的二进制格式,.ll 文件 llvm bitcode 的可读文本
clang -o3 -emit-llvm hello.c -S -o hello.ll
llvm-dis 工具反汇编llvm bitcode 文件, 可以将bc文件转为.ll文件
llvm-dis hello.bc
- 用 llvm-as 工具通过汇编文件(.ll 文件)得到字节码文件(.bc 文件)
llvm-as hello.ll hello.bc
- .bc编译成.o
第一种方法:用clang直接将其编译为可执行文件
clang a.o.bc -o struct
第二种方法:用llc先将bc编译为汇编,再用本地的gcc将其编译为可执行文件。
llc a.o.bc -o hello.s
gcc hello.s -o hello
- 编译生成可执行文件
clang hello.c -o hello
或者
clang -emit-llvm -c hello.c
- .bc到.s编译指令
clang -S -fobjc-arc struct.bc -o struct.s
本文详细介绍了如何使用 LLVM 工具链进行 C 文件的编译,包括从源代码生成 LLVM bitcode (.bc) 文件,以及如何将 .bc 文件转换为可读的 .ll 文件。同时,文中还讲解了如何利用 LLVM 的工具将 .bc 文件进一步编译成目标代码 (.o) 或者直接生成可执行文件。此外,还提供了将 .bc 文件转换为汇编语言 (.s) 文件的方法。
1169

被折叠的 条评论
为什么被折叠?



