C 編譯,鏈結

2021-09-30 15:06:52 字數 453 閱讀 4250

1、何謂編譯,鏈結

高階語言(c,c++等等)要變成機器可執行的指令,需要「編譯」,「鏈結」,「裝入」三個過程,

編譯:由編譯程式將使用者源**編譯成若干個目標模組,即.c/ .cpp----->.obj(windows) .o(unix),一般是乙個原始檔對應乙個.obj檔案,這個過程只是檢查一下變數是否定義,並不會進行邏輯的檢查

2 注意:在編譯時,編譯器只檢測程式語法,檢查變數,函式等是否被宣告。如果函式未被宣告,編譯器會給出乙個警告,但可以生成object file。而在鏈結程式時,鏈結器會在所有的object file中找尋函式的實現,如果找不到,那到就會報鏈結錯誤碼(linker error),在vc下,這種錯誤一般是:link 2001錯誤,意思說是說,鏈結器未能找到函式的實現。你需要指定函式的object file.(這段**於網路)

過程:原始檔-----》中間檔案----》可執行檔案

ref:

C 編譯鏈結

過程 一 預編譯 預處理 處理 define if include這類 開頭的語句,這些稱為預編譯指令。這個過程中會把.h檔案和.c cpp檔案組合成最終交給compile過程的原檔案。這個原檔案是不包含任何 開頭的語句的。所有 define定義的巨集也會被替換。二 編譯 把上面那個原檔案編譯成.o...

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...