clang llc llvm 常用编译指令

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

或者

clang -emit-llvm -c hello.c
  1. .bc到.s编译指令
clang -S -fobjc-arc struct.bc -o struct.s
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值