編譯和預處理相關知識點

2021-07-08 19:29:35 字數 813 閱讀 4106

本質:翻譯官,把高階語言翻譯成機器指令

常用選項:

gcc -o 輸出檔名 輸入檔名

gcc -o build 01.c (字尾不能為其他)

gcc -v

-o build 01.c

gcc -l

-o 用來指定程式要鏈結的庫,-l引數緊接著就是庫名

gcc -l

-o-l引數跟著的是庫檔案所在的目錄名

gcc -e

-ogcc -s

-ogcc -c

-o

編譯過程

預處理gcc -e -o a.i 01.c生成a.i

常見錯誤

(1)預處理錯誤:找不到,未定義

解決方案:gcc -i ./dir -o build 01.c

(2)編譯錯誤:語法錯誤

(3)鏈結錯誤:原材料不夠(函式未實現)或者原材料多了(多次實現)

解決方案:尋找標籤是否實現或者只保留乙個實現

define 巨集替換不進行語法檢查

include

預定義巨集functionlinefile

條件編譯(開關) #ifdef #else #endif

提前定義乙個巨集:gcc -dabc 等價於#define abc

巨集展開下的#和##:

#define abc(a)   #a      字串

#define day(a) myday##a 連線符號

C 預處理相關知識點總結

c提供的預處理命令有3種 1 巨集定義 2 檔案包含 3 條件編譯 預處理命令不是c語句,為了與一般的c語句相區別,這些命令都是以 開頭的。c原始檔經過預處理之後,不再含有任何預處理命令。單個.c原始檔轉換為可執行檔案需要經過4個步驟 1 預處理 2 編譯 3 彙編 4 鏈結 多個.c原始檔轉換為可...

預處理命令知識點

ansi c標準規定,可以在c源程式中加入一些 預處理命令 以改進程式設計環節,提高程式設計效率。這些預處理命令是由ansi c統一規定的,但是它不是c語言本身的組成部分,不能直接對它們進行編譯 因為編譯程式不能識別它們 必須在對程式進行通常的編譯之前 先對程式中這些特殊的命令進行 預處理 即根據預...

文字預處理等知識點打卡

一 文字預處理 1.讀入文字 re.sub pattern,repl,string,count 0,flags 0 pattern 表示正規表示式中的模式字串 repl 被替換的字串 既可以是字串,也可以是函式 string 要被處理的,要被替換的字串 count 匹配的次數,預設是全部替換 fla...