C 編譯鏈結

2021-07-11 17:41:35 字數 415 閱讀 2356

過程:一、預編譯(預處理)

處理#define #if #include這類#開頭的語句,這些稱為預編譯指令。

這個過程中會把.h檔案和.c/.cpp檔案組合成最終交給compile過程的原檔案。

這個原檔案是不包含任何#開頭的語句的。所有#define定義的巨集也會被替換。

二、編譯

把上面那個原檔案編譯成.o或者vc裡是.obj檔案。

這個檔案儲存了機器碼化的函式、函式的描述、全域性變數的描述、乃至段的描述等等。

三、鏈結

把可執行程式需要的所有的編譯過程產生的.o或者.obj檔案組合到一起。

(這裡也包括.lib檔案,.lib檔案件本質上就是打包的.obj檔案集合)。

另外連線過程還會組合一些其他資料,比如資源、可執行檔案頭等等。

可見鏈結庫那篇文章。

C 編譯 鏈結

c 程式在編譯的時候主要有以下幾個過程 1.預編譯 預處理 主要是對偽指令 以 開頭的指令 和特殊符號進行處理。偽指令主要包括 1 巨集指令 如 define name adu,undef等。對於第乙個指令,預編譯主要是進行替換,除了name字串常量 對於第二個則取消該巨集定義,以後出現該巨集的地方...

c 編譯鏈結

太羞恥了,回頭來整理調整一波,把整個程式執行的過程整理一遍。從cpp到exe不完全過程 一 乙個cpp 二 ctrl f7 三 找到exe,傳送快捷方式。以上。include include using namespace std float u,v strait,v curve,m,g,degre...

C 編譯,鏈結

1 何謂編譯,鏈結 高階語言 c,c 等等 要變成機器可執行的指令,需要 編譯 鏈結 裝入 三個過程,編譯 由編譯程式將使用者源 編譯成若干個目標模組,即.c cpp obj windows o unix 一般是乙個原始檔對應乙個.obj檔案,這個過程只是檢查一下變數是否定義,並不會進行邏輯的檢查 ...