什麼是編譯?什麼是鏈結?

2021-10-04 03:24:25 字數 471 閱讀 5049

1.一般來說,無論是c、c++,首先要把原始檔編譯成中間**檔案,在windows下也就是 .obj 檔案,unix下是 .o 檔案,即 object file。

2.在編譯時編譯器需要的是語法的正確函式與變數的宣告的正確。只要所有的語法正確,編譯器就可以編譯出中間目標檔案。一般來說,每個原始檔都應該對應於乙個中間目標檔案(o檔案或是obj檔案)。

1.鏈結主要是鏈結函式和全域性變數,鏈結器會在所有的object file中找尋函式的實現。

2.鏈結將所有二進位制形式的目標檔案和系統元件(比如標準庫、動態鏈結庫等)組合成乙個可執行檔案

什麼是鏈結,為什麼需要鏈結?

在實際開發中,我們一定是多檔案程式設計,所有檔案在編譯後,需要合在一起,合在一起的過程就是鏈結的過程。每乙個原始檔 就是.c檔案,上圖中的程式1 都有對應的零碎檔案 就是.件 通過預編譯 通過 include實現 把.c和.件整合成乙個組合c檔案,這個組合c檔案的擴充套件名為.i。把組合c檔案編譯成...

什麼是交叉編譯?

在一種計算機環境中執行的編譯程式,能編譯出在另外一種環境下執行的 我們就稱這種編譯器 支援交叉編譯。這個編譯過程就叫交叉編譯 簡單地說,就是在乙個平台上生成另乙個平台上的可執行 這裡需要注意的是所謂平台,實際上包含兩個概念 體系結構 architecture 作業系統 operating syste...

什麼是預編譯

預編譯頭的概念 所謂的預編譯頭就是把乙個工程中的那一部分 預先編譯好放在乙個檔案裡 通常是以.pch為副檔名的 這個檔案就稱為預編譯標頭檔案這些預先編譯好的 可以是任何的c c 甚至是inline的函式,但是必須是穩定的,在工程開發的過程中不會被經常改變。如果這些 被修改,則需要重新編譯生成預編譯標...