步驟
所進行的內容
生成的檔案
預處理展開標頭檔案/巨集替換/去掉注釋/條件編譯
test.i main .i
編譯檢查語法,生成彙編
test.s main .s
彙編彙編**轉換機器碼
目標檔案 test.o main.o
鏈結鏈結到一起生成可執行程式
可執行檔案 a.out
巨集優點
缺點
靜態鏈結
動態鏈結
靜態庫和應用程式編譯在一起,在任何情況下都能執行,而動態庫是動態鏈結,檔案生效時才會呼叫。
[1]
預處理 編譯 連線 執行
1.預處理階段 編譯器以c檔案作為乙個單元,首先讀這個c檔案,發現第一句與第二句是包含乙個標頭檔案,就會在所有搜尋路徑中尋找這兩個檔案,找到之後,就會將相應標頭檔案中再去處理巨集,變數,函式宣告,巢狀的標頭檔案包含等,檢測依賴關係,進行巨集替換,看是否有重複定義與宣告的情況發生,最後將那些檔案中所有...
預處理 編譯 彙編 鏈結
1.預處理 預處理器 預處理階段主要處理 include 和 define 它把 include包含進來的 h 檔案插入到 include 所在的位置,把源程式中使用到的用 define 定義的巨集用實際的字串代替。2.編譯階段 編譯器 在這個階段,編譯器先要檢查 的規範性和語法錯誤等,以確定 的實...
編譯鏈結執行原理 編譯鏈結執行過程
乙個.c cpp源程式檔案要最後變成.exe windows 或者.out linux 可執行檔案,要經過編譯和鏈結過程。四個步驟 預編譯,編譯,彙編,連線 一 預編譯 處理以 開頭的預編譯指令,比如 include,define等,規則如下 1 刪除所有的 define,並展開所有的巨集替換 文字...