1. 程式人生 > >GCC 命令列詳解 -L -l

GCC 命令列詳解 -L -l

我們用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來指定其名稱