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