回顧以前的知識,並做簡單的整理,出發!
平台:linux 系統下
建立如下函式,並命名為hello.c
#include
void main()
printf("hello world!\n\r");
預編譯(pre-processing)
gcc-e hello.c-o hello.i
編譯(compiling)
gcc-s hello.i-o hello.s
彙編(assembling)
gcc-c hello.s-o hello.o
鏈結(linking)
gcc hello.o-ohello
c源程式標頭檔案-->預編譯處理(c/cpp)-->編譯程式本身-->優化程式-->匯程式設計序-->鏈結程式-->可執行檔案
-idir 在標頭檔案的搜尋路徑列表中新增dir目錄
-ldir 在庫檔案的搜尋路徑列表中
-werror把所有的告警資訊轉化為錯誤資訊,並在告警發生時終止編譯過程
git提交文件(記錄一下,不然不以後忘了)
git status//狀態檢視
git add gcc/makefile
//新增文字(makefile)
git status
git commit -s或者git commit -m "name"//提交文字
git push --all//--all第一次需要使用
git的小點:git commit -f../commit_log.txt//增加提交說明檔案
git diff > ../otp.patch//這兩個目錄在提交檔案的前乙個目錄
gcc編譯流程
可以利用gcc的引數來控制執行的過程,這樣就可以更深入的了解編譯c程式的過程。下面將通過對乙個程式的編譯來演示整個過程。includeint main 1 預處理 編譯器將c程式的標頭檔案編譯進來,還有巨集的替換,可以用gcc的引數 e來參看。命令 gcc e hello.c o hello.i 作...
gcc編譯流程
步驟命令 說明預處理 gcc e hello.c o hello.i 1.將所有 define刪除,並且展開所有的巨集定義 2.處理所有的條件預編譯指令,如 if ifdef undef ifndef endif elif 3.處理 include,將包含的檔案插入到此處,這是乙個遞迴的過程 4.刪...
GCC編譯流程
gcc使用的基本語法為 gcc option filename 這裡option是gcc使用時的一些選項,可以通過指定不同的選項實現不同的功能。這裡的filename是gcc要編譯的檔案,gcc會根據使用者指定的編譯選項以及所識別的檔案字尾名來對編譯檔案進行響應的處理。1,預處理階段 預處理功能分為...