GCC編譯過程

第一步 預處理後結束 參數-E 

gcc -E hello.c -o hello.i

查看hello.i文件中的內容

cat hello.i

stdio.h的內容插入到文件裏去了,宏定義也在預處理中都做了相應的處理



第二步 將hello.i 編譯爲 目標代碼 參數 -c

gcc -c hello.i -o hello.o


第三步 將生成的目標文件鏈接成爲可執行文件

gcc hello.o -o hello


將多個源文件進行編譯並最終生成可執行程序

命令:gcc foo1.c foo2.c -o foo

相當於

gcc -c foo1.c -o foo1.o

gcc -c foo2.c -o foo2.o

#gcc foo1.o foo2.o -o foo


在編譯一個包含許多源文件的工程時,若只用一條GCC命令來完成編譯是非常浪費時間的。

假設項目中有100個源文件需要編譯,並且每個源文件中都包含 10000行代碼,如果像上面那樣僅用一條GCC命令來完成編譯工作,那麼GCC需要將每個源文件都重新編譯一遍,然後再全部連接起來。

尤其是當用戶只是修改了其中某一個文件的時候,完全沒有必要將每個文件都重新編譯一遍,因爲很多已經生成的目標文件是不會改變的。

要解決這個問題,關鍵是要靈活運用GCC,同時還要藉助像Make這樣的工具。

發佈了15 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章