命令
- gcc/clang?-g -O2 -o test test.c -I ... -L ... -l
- gcc Linux環境下的命令;clang是MAC環境下的執行命令
- -g 輸出文件中的調試信息
- -O 對輸出文件進行指令優化
- -o 輸出文件,可執行文件
- -I 指定頭文件,大寫的i? ?從-I 開始 是鏈接內容,先前是編譯內容
- -L 指定庫文件的位置
- -l 指定使用哪個庫文件 小寫的L
編譯過程
- 預編譯
- 編譯
- 鏈接,動態鏈接 / 靜態鏈接
補充
- 設計一個函數,返回兩個形參相加的結果
- 將其轉化為一個靜態庫
- 首先進行編譯:clang -g -c add.c? add.c為源文件的名字
- .c 文件? ?編譯后 生成 .o 文件
- 生成 靜態庫 libtool? -static -o libmylib.a add.o
- libmylib.a前三個字母lib是庫文件的要求,后面是自主設定的文件的名字,.a表明 這是一個 靜態文件,add.o 是輸入文件
- 第三方文件 使用 先前生成的第三方庫,使用雙引號 引入 第三方庫 的名字,需要在使用命令進行編譯時,指定 第三方庫文件的路徑
- 例子:clang -g -o testlib testlib.c -I . -L . -lmylib
- ? -I 和 -L 均指定當前文件夾下
- -lmylib 實際使用的時候 需要刪除前三個字母 (lib) libmylib.a ,使用-l 替代