靜態庫檔案搜尋順序:
1.gcc會去找-l
2.gcc的環境變數library_path
3.預設目錄 /lib /usr/lib /usr/local/lib 這是當初compile gcc時寫在程式內的
動態庫檔案搜尋順序:
1.編譯目標**時指定的動態庫搜尋路徑;
2.環境變數ld_library_path指定的動態庫搜尋路徑;
3.配置檔案/etc/ld.so.conf中指定的動態庫搜尋路徑;
4.預設的動態庫搜尋路徑/lib;
5.預設的動態庫搜尋路徑/usr/lib。
注意如果修改了/etc/ld.so.conf,需要執行/sbin/ldconfig更新/etc/ld.so.cache,否則仍然無法找到庫檔案路徑。
標頭檔案搜尋順序:
1.header file的搜尋會從-i開始
2.gcc的環境變數 c_include_path,cplus_include_path,objc_include_path
3.預設目錄:
/usr/include
/usr/local/include
/usr/lib/gcc-lib/i386-linux/2.95.2/include
/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../include/g++-3
/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../i386-linux/include
當進行交叉編譯時,新增環境變數ld_library_path、library_path的方法不見得有效,這時只能考慮在makefile中進行變數的修改與新增。
gcc g 新增頭檔案目錄和庫檔案目錄
1 新增頭檔案目錄 1 編譯選項 i 2 環境變數 c include path cplus include path objc include path 任選其一 2 新增庫檔案目錄 1 編譯選項 l 指定檔案,l 指定目錄 附 l緊接著就是庫名,那麼庫名跟真正的庫檔名有什麼關係呢?就拿數學庫來說...
Linux系統中如何新增自己的庫檔案路徑
庫檔案在連線 靜態庫和共享庫 和執行 僅限於使用共享庫的程式 時被使用,其搜尋路徑是在系統中進行設定的。一般linux系統把 lib和 usr lib兩個目錄作為預設的庫搜尋路徑,所以使用這兩個目錄中的庫時不需要進行設定搜尋路徑即可直接使用。對於處於預設庫搜尋路徑之外的庫,需要將庫的位置新增到庫的搜...
Linux系統中如何新增自己的庫檔案路徑
庫檔案在連線 靜態庫和共享庫 和執行 僅限於使用共享庫的程式 時被使用,其搜尋路徑是在系統中進行設定的。一般 linux 系統把 lib 和 usr lib 兩個目錄作為預設的庫搜尋路徑,所以使用這兩個目錄中的庫時不需要進行設定搜尋路徑即可直接使用。對於處於預設庫搜尋路徑之外的庫,需要將庫的位置新增...