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