llvm编译命令与选项
编译生成可执行文件
clang hello.c -o hello
编译生成bc文件(不可读)
得到 LLVM 字节码文件.bc(不可读字节码文件)
clang -O3 -emit-llvm hello.c -c -o hello.bc
- -O3: 表示使用编译优化级别3来编译程序
- -emit-llvm: 表示要通过 clang 得到 LLVM 的字节码文件(.bc)或者汇编文件(.ll)
- -c: 表示要得到字节码文件
- -g: 用于 gdb 调试
- -o: 指定了输出文件的名称,字节码文件一般以** .bc 结尾**
llvm-dis反汇编工具
llvm-dis hello.bc hello.ll
用llvm-dis工具反汇编得到 LLVM 汇编文件(可读)
得到 LLVM 汇编文件(可读)
-S: 表示要得到汇编文件
clang -O3 -emit-llvm hello.c -S -o hello.ll
llvm-as 汇编(.ll)转字节码(.bc)
用 llvm-as 工具通过汇编文件(.ll 文件)得到字节码文件(.bc 文件)
llvm-as hello.ll hello.bc
编译 cpp 文件
clang++: 编译 .cpp 文件
-Wall: 输出警告信息
-g: 用于 gdb 调试
-std: 编译的标准(-std=c++98、-std=c++03、-std=c++11、-std=c++0x)
-stdlib: C++ 标准头文件
clang++ -Wall -g -std=c++11 -stdlib=libc++ Hello.cpp -o hello clang++ -Wall -std=c++11 -stdlib=libc++ -emit-llvm -c Hello.cpp -o hello.bc
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!