Linux編譯鏈結環境變數

2021-06-16 09:42:05 字數 895 閱讀 4186

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...