編譯和預編譯的區別是什麼?
- 預編譯
又稱為預處理,是做些程式碼文字的替換工作,處理#開頭的指令,比如複製#include包含的檔案程式碼,#define宏定義替換,條件編譯等 - 編譯
把高階語言變成計算機可以識別的二進位制檔案 -
ifndef #define
防止同一個標頭檔案被多次編譯,因為多個C&C++檔案k可能包含同一個h檔案
- 庫檔案
- 目標檔案:本機編譯成的二進位制程式碼, .o
- 庫:一組已編譯的目標檔案集合,他們被組合在一起以便在程式中重複使用。
- 靜態庫:在連結時被複製併合併到可執行檔案中,因此可執行性檔案可以獨立執行,*.a
- 動態庫:在執行時被動態載入到記憶體中,並且可被多個程式共享。 *.so