C语言代码的构建过程
预处理器->编译器->汇编器->链接器
由.c文件到.i文件,这个过程叫预处理, 处理头文件,宏替换等工作。
由.i文件到.s文件,这个过程叫编译
由.s文件到.o文件,这个过程叫汇编
.o文件到可执行文件,这个过程叫链接,这个阶段会链接动态链接库、静态链接库,以及其他兄弟.o文件
clang++ -E test.cc -o test.i #预处理阶段,生成预处理文件test.i
clang++ -S test.i #编译阶段 ,生成汇编程序test.s
clang++ -c test.s #汇编器,生成目标文件test.o
clang++ -o test test.o #链接阶段,生成可执行文件
============================================
clang++ -o test test.cc #一步到位,生成可执行文件
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
eBPF动手实践系列三:基于原生libbpf库的eBPF编程改进方案
原創
2024-03-21 01:31:44
settings.json
原創
2023-08-05 11:45:56
Android 使用NDK R21编译ffmpeg
原創
2023-06-26 23:53:55
vscode + clangd 无法识别工程中的自定义包含目录的解决方法
原創
2023-01-09 11:56:47
“C ++编程语言”第4版第36.3.6节中的代码是否有明确定义的行为?
fyin1314
2021-12-27 21:18:03
指针 - 温故而知新
原創
2021-09-13 21:32:51
Swift Beta 性能:排序数组 - Swift Beta performance: sorting arrays
技術盛宴
2021-09-05 09:25:20
C++20 四大特性之一:Module 特性详解
原創
2021-08-09 21:13:59
MacOs 10.14.3 Matlab2018b 解决“找不到已安装的编译器 'Xcode Clang++'。错误使用mex,未找到合适的编译器”问题
javail
2021-07-19 21:15:45
新版本CodeSonar6.0在DevOps开发过程中提供了更深入的SAST集成新版本CodeSonar6.0在DevOps开发过程中提供了更深入的SAST集成
原創
2021-04-29 21:31:55
eBPF 的发展历史和核心设计
前言 本文翻譯自 2016 年 Daniel Borkman 在 NetdevConf 大會上的一篇文章:On getting tc classifier fully programmable
米開朗基楊
2021-03-22 21:37:25
BPF 可移植性和 CO-RE(一次编译,到处运行)
前言 本文翻譯自 2020 年 Facebook 的一篇博客:BPF Portability and CO-RE[1], 作者 Andrii Nakryiko。 關於 BPF CO-RE 的目
米開朗基楊
2021-03-22 21:37:25
xmake v2.5.2 发布, 支持自动拉取交叉工具链和依赖包集成
原創
2021-03-22 21:23:37
一款可以让大型iOS工程编译速度提升50%的工具
原創
2021-03-22 21:19:06