GCC 命令列詳解 -L -l
阿新 • • 發佈:2019-01-31
我們用gcc編譯程式時,常常會用到“-I”(大寫i),“-L”(大寫l),“-l”(小寫l)等引數,下面做個記錄:
GCC 命令列詳解 -L 指定庫的路徑 -l 指定需連線的庫名
Linux下動態連結庫預設字尾名是".so",靜態連結庫預設字尾名是“.a”。
例:
gcc -o hello hello.c -I/home/hello/include -L/home/hello/lib -lworld
- 1
- 1
上面這句表示在編譯hello.c時:
-
-I /home/hello/include,表示將/home/hello/include目錄作為第一個尋找標頭檔案的目錄,尋找的順序是:/home/hello/include–>/usr/include–>/usr/local/include
- 也就是指定優先查詢的目錄,找不到的話查詢預設目錄
-
-L /home/hello/lib,表示將/home/hello/lib目錄作為第一個尋找庫檔案的目錄, 尋找的順序是:/home/hello/lib–>/lib–>/usr/lib–>/usr/local/lib
- 同上,也是指定優先查詢的目錄
-
-l word , 表示**尋找動態連結庫檔案**libword.so(也就是檔名去掉字首和字尾所代表的庫檔案)
- 如果 加上編譯選項-static,表示尋找靜態連結庫檔案,也就是libword.a
對於第三方提供的動態連結庫(.so),一般將其拷貝到一個lib目錄下(/usr/local/lib),或者使用-L來指定其所在目錄, 然後使用-l來指定其名稱