gcc編譯選項 I與搜尋路徑(下)

2021-09-12 08:24:20 字數 1656 閱讀 6557

一 點睛

本實戰驗證雙引號包含標頭檔案時的搜尋次序。

二 實戰

1 建立4個test1.**件

[root@localhost test]# find / -name test1.h

/root/c++/ch02/2.11/test/test1.h

/root/c++/ch02/2.11/inc/test1.h

/usr/include/test1.h

/usr/local/include/test1.h

2 4個檔案的內容

[root@localhost test]# cat /root/c++/ch02/2.11/test/test1.h

#define zww 11

[root@localhost test]# cat /root/c++/ch02/2.11/inc/test1.h

#define zww 8

[root@localhost test]# cat /usr/include/test1.h

#define zww 10

[root@localhost test]# cat /usr/local/include/test1.h

#define zww 9

3 /root/c++/ch02/2.11/testtest.cpp原始檔內容

#include #include "test1.h"

int main()

4 測試

4.1 4個.**件都存在的情況下,執行下面的命令,匹配到了/root/c++/ch02/2.11/test/test1.h

[root@localhost test]# gcc test.cpp -i ../inc -o test

[root@localhost test]# ./test

hello, boy:11

4.2 刪除/root/c++/ch02/2.11/test/test1.h,匹配到/root/c++/ch02/2.11/inc/test1.h

[root@localhost test]# gcc test.cpp -i ../inc -o test

[root@localhost test]# ./test

hello, boy:8

4.3 刪除/root/c++/ch02/2.11/inc/test1.h,匹配到/usr/local/include/test1.h

[root@localhost test]# gcc test.cpp -i ../inc -o test

[root@localhost test]# ./test

hello, boy:9

4.4 刪除/usr/local/include/test1.h,匹配到/usr/include/test1.h

[root@localhost test]# gcc test.cpp -i ../inc -o test

[root@localhost test]# ./test

hello, boy:10

linux下 gcc 預設搜尋路徑

有大量的環境變數可供設定以影響 gcc 編譯程式的方式。利用這些變數的控制也可使用合適的命令列選項。一些環境變數設定在目錄名列表中。這些名字和 path 環境變數使用的格式相同。特殊字元 path separator 安裝編譯程式的時候定義 用在目錄名之間。在 unix 系統中,分隔符是冒號,而 w...

GCC編譯時指定動態庫搜尋路徑

補充檢視編譯好的動態庫或者程序的rpath的方法 動態庫的搜尋路徑的順序 參考資料 gcc中的rpath引數可以用編譯時指定動態庫的搜尋路徑,這樣執行時就不需要export ld library path了。編譯時增加引數 wl,rpath 編譯時增加引數 wl,z,origin wl,rpath ...

Gcc對頭檔案與庫檔案的搜尋路徑

一 簡介 對頭檔案與庫檔案的搜尋路徑不太清楚,編譯 執行時老碰到問題,ldd檢視程式的鏈結時,總是出現unkown鏈結.二 標頭檔案 gcc 在編譯時尋找所需要的標頭檔案 1 搜尋會從 i開始 2 然後找gcc的環境變數 c include path,cplus include path,objc ...