參數
gcc文件類型約定
gcc常用選項
命令
鏈接庫
函數庫是一些頭文件(.h) 和庫文件(.so或 .a)的集合,在Linux下大多頭文件的默認路徑是/usr/include/
,而庫文件默認路徑在/usr/include/
,但並不是所有情況都是這樣,當頭文件和庫文件在別的位置時,利用gcc編譯需要指定所需要的頭文件和庫文件。
gcc通過搜索目錄的辦法查詢所需要的文件,-I
選項可以向默認路徑中添加新目錄。
比如在home/name/include/
下編寫了程序foo.c
,爲了gcc能夠找到,需要用如下命令:
gcc foo.c -I /home/name/include -o foo
同樣,如果使用了不在默認路徑的庫文件,需要使用-L
選項添加庫文件路徑,比如:
gcc foo.c -L /home/name/lib -lfoo -o foo
上面例子中的-L
讓gcc去鏈接庫找libfoo.so'
庫文件,linux下庫文件命名時約定以lib
開頭,所以在命令行中可以省去,直接使用-lfoo
即可。
靜態鏈接和動態鏈接
Linux下庫文件分爲動態鏈接庫(以.so結尾)和靜態鏈接庫(以.a結尾),如果指定使用靜態鏈接庫,編譯時加上-static
選項。
例如下面編譯命令:
gcc foo.c -L /home/name/lib -static -lfoo -o foo