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