1.ld會去找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。
有關環境變數:
library_path環境變數:指定程式靜態鏈結庫檔案搜尋路徑
鏈結過程
建立靜態庫方法(包括靜態內部庫和動態外部庫)
gcc -c fun.c
ar cqs libfun.a fun.o
編譯中使用靜態庫方法
gcc call.c -static -l. -lfun -o fun_static_call
建立動態庫(包括動態內部庫和動態外部庫)
gcc fun.c -fpic -shared -o libfun.so
編譯中使用動態庫方法
gcc call.c -l. -lfun -o fun_dyn_call
編譯器會先在path資料夾下搜尋lib***.so檔案,
執行過程
無論是使用動態庫還是外部庫鏈結時都是使用的ld聯結器;
使用動態庫的程式執行時使用動態載入器。在linux 下,載入器是/lib/ld-linux.so.x(x是版本號)。然後載入器搜尋、引導程式所要使用的動態鏈結庫。搜尋順序見上。
linux環境程式設計 環境變數 列印環境變數
在shell程式設計主題中,我們已經大致的介紹過 環境變數和本地變數啦 我們今天來具體的介紹介紹,那環境變數到底是什麼呢?是我 一.環境變數含義 特徵 環境變數是指 作業系統中用來指定作業系統執行環境的一下引數 1 特徵 字串 有統一的格式 名 值 值 值用來描述程序的環境資訊 2 使用形式 與命令...
linux環境變數
初次學習lliux對環境變數的知識甚是不解決,特花費乙個上午的時間總結了一下,可以說是全面!如各位有更加詳細的見解不妨告知!定製環境變數 環境變數是和shell緊密相關的,使用者登入系統後就啟動了乙個shell。對於linux來說一般是bash,但也可以重新設定或切換到其它的 shell。環境變數是...
Linux環境變數
好吧,我承認這篇文章是轉的.1.顯示環境變數home echo home home redbooks 2.設定乙個新的環境變數hello export hello hello echo hello hello 3.使用env命令顯示所有的環境變數 env hostname redbooks.safe...