編譯鏈結的整個過程

2021-07-23 20:13:16 字數 529 閱讀 8287

預編譯1:將所有的#define刪除,並展開所有的巨集定義; 

2:處理所有的預編譯指令,例如:#if,#elif,#else,#endif; 

3:處理#include預編譯指令,將被包含的檔案插入到預編譯指令的位置; 

4:新增行號資訊檔名資訊,便於除錯; 

5:刪除所有的注釋:// /**/; 

6:保留所有的#pragma編譯指令,因為在編寫程式的時候,我們經常要用到#pragma指令來設定編譯器的狀態或者是指示編譯器完成一些特定的動作。 

生成.i檔案。 

編譯掃瞄,語法分析,語義分析,源**優化,目標**生成,目標**優化;『 

生成彙編**;彙總符號; 

生成.s檔案 

彙編1:根據彙編指令和特定平台,把彙編指令翻譯成二進位制形式; 

2:合併各個section,合併符號表; 

生成.o檔案

鏈結

編譯的整個過程 預編譯 編譯 彙編 鏈結

編譯分為四個步驟 每個步驟將檔案編譯成別的格式,如下 步驟未編譯 預編譯編譯 彙編鏈結 檔案fun.h fun.cpp test.cpp fun.i test.i fun.s test.s fun.o test.o projectname.exe 詳解 1.預編譯 預編譯過程主要做4件事 展開標頭檔...

c語言中編譯鏈結的整個過程

c語言的編譯鏈結過程要把我們編寫的乙個c程式 源 轉換成可以在硬體上執行的程式 可執行 需要進行編譯和鏈結。編譯就是把文字形式源 翻譯為機器語言形式的目標檔案的過程。鏈結是把目標檔案 作業系統的啟動 和用到的庫檔案進行組織形成最終生成可執行 的過程。編譯 編譯是讀取源程式 字元流 對之進行詞法和語法...

C語言 編譯鏈結的整個過程和詳細的每個過程

c語言的編譯鏈結過程要把我們編寫的乙個c程式 源 轉換成可以在硬體上執行的程式 可執行 需要進行編譯和鏈結。編譯就是把文字形式源 翻譯為機器語言形式的目標檔案的過程。鏈結 是把目標檔案 作業系統 的啟動 和用到的庫檔案進行組織,形成最終生成可執行 的過程。編譯過程又可以分成兩個階段 編譯和彙編。編譯...