最簡單的編譯指令為:
gcc hello.c -o hello
-o後面跟著的是輸出檔名,這裡為hello,當然也可以省略不寫,這樣的話預設輸出 a.out
這是經常遇到的兩個引數 ,先說-l
用來指定程式要鏈結的庫,-l引數緊接著就是庫名就拿數學庫來說,他的庫名是m,他的庫檔名是libm.so把庫檔名的頭lib和尾.so去掉就是庫名了,在編譯時跟 -lm就可以來 ;gcc hello.c -o hello -lm。
需要注意的是 放在/lib和/usr/lib和/usr/local/lib裡的庫直接用-l引數就能鏈結了,但如果庫檔案沒放在這三個目錄裡,而是放在其他目錄裡,就需要用到 -l啦
假如把libtest.so放在/a/b/c目錄下,那鏈結引數就是-l/a/b/c -ltest ,顯而,-l需要乙個完整的路徑。
跟你理解的一樣,它用來包含標頭檔案
這引數用來指定頭檔案目錄,/usr/include目錄一般是不用指定的,gcc回自己找,但是如果標頭檔案不在/usr/include裡就要用-i引數指定了,例項 標頭檔案放在a/b/myinclude目錄裡,那編譯命令列就要加上-ia/b/myinclude引數
gcc編譯命令 初學筆記
最簡單的編譯指令為 gcc hello.c o hello o後面跟著的是輸出檔名,這裡為hello,當然也可以省略不寫,這樣的話預設輸出 a.out 這是經常遇到的兩個引數 先說 l 用來指定程式要鏈結的庫,l引數緊接著就是庫名就拿數學庫來說,他的庫名是m,他的庫檔名是libm.so把庫檔名的頭l...
GCC 編譯命令筆記
將 檔案編譯並鏈結為可執行檔案 gcc o hello hello.c i usr include 引用標頭檔案位置 2.編譯檔案 gcc c hello.c 3.需要鏈結庫 gcc o hello hello.c usr lib libm.a 絕對路徑 gcc o hello helloc lm ...
gcc編譯命令
一 gcc的編譯過程分為四個過程 1.預處理 也稱預編譯,preprocessing 生成.i的檔案 2.編譯 compilation 將預處理後的檔案轉換成組合語言,生成.s檔案 3.彙編 assembly 彙編變為目標 機器 生成.o的檔案 4.鏈結 linking 連線目標 生成可執行程式 二...