1)編譯時間標頭檔搜尋路徑
①C_INCLUDE_PATH
編譯C程式時使用該環境變數。該環境變數指定一個或多個目錄名列表,尋找標頭檔,就好像在命令列中指定-isystem選項一樣。會首先尋找-isystem指定的所有目錄。
②CPLUS_INCLUDE_PATH
編譯C++程式時使用該環境變數。該環境變數指定一個或多個目錄名列表,尋找標頭檔,就好像在命令列中指定-isystem選項一樣。會首先尋找-isystem指定的所有目錄。
③OBJC_INCLUDE_PATH
在編譯Objective-C程式的時候使用該環境變數。一個或多個目錄名的列表由環境變數指定,用來尋找標頭檔,就好像在命令列中指定-isystem選項一樣。所有由-isystem選項指定的目錄會首先被尋找。
④CPATH
編譯C,C++和Objective-C程式時使用該環境變數。該環境變數指定一個或多個目錄名列表,尋找標頭檔,就好像在命令列中指定-l選項一樣。會首先尋找-l指定的所有目錄。
2)編譯時間庫檔案搜尋路徑
①LIBRARY_PATH
該環境變數可設定為一個或多個目錄名字列表,串連程式會搜尋該目錄,以尋找特殊串連程式檔案,和由-l (字母l)命令列選項指定名字的庫。由-L命令列選項指定的目錄在環境變數的前面,首先被尋找。
②COMPILER_PATH
該環境變數指定一個或多個目錄名列表,如果沒有指定GCC_EXEC_PREFIX定位子程式,編譯器會在此尋找它的子程式。
③GCC_EXEC_PREFIX
如果定義了該環境變數,它會作為編譯器執行的所有子程式名字的首碼。例如,如果將變數設定為 testver,彙編器首先會在名字testveras下尋找,而不是尋找as。如果在此沒有找到,編譯器會繼續根據它的普通名進行尋找。可在首碼名中使用斜線指出路徑名。
預設設定為prefix /lib/gcc-lib/,這裡的prefix是安裝編譯器時configure指令碼指定的名字。該首碼也用於定位標準串連程式檔案,包含進來作為可執行程式的一部分。如果使用-B命令列選項,會重寫該設定。
3)編譯時間其他環境
①LANG
該環境變數用於指出編譯器使用的字元集,可建立寬字元文字,串文字和注釋。 定義LANG為C-JIS,指出預先處理程式將多位元組字元按照JIS(日語工業標準)字元進行解釋。C-SJIS 可用來指出Shift-JIS字元而C-EUCJP指出日文EUC。如果沒有定義LANG,或定義為不可識別,函數mblen()被用來確定字元寬度,而mbtowc()用來將多位元組序列轉換為寬字元。
②TMPDIR
這個變數包含了供編譯器存放臨時工作檔案的目錄的路徑名。這些檔案通常在編譯過程結束時被刪除。這種檔案的一個例子就是由預先處理程式輸出並輸入給編譯器的檔案。
4)執行階段程式庫搜尋路徑
①LD_LIBRARY_PATH ----非常有用!!
該環境變數不會影響編譯器,但程式啟動並執行時候會有影響。變數指定一個目錄列表,程式會尋找該列表定位共用庫。只有當未在編譯器的目錄中找到共用庫的時候,執行程式必須設定該變數。
②LD_RUN_PATH
該環境變數不會影響編譯器,但程式啟動並執行時候會有影響。該變數在運行時指出檔案的名字,啟動並執行程式可由此得到它的符號名字和地址。地址不會重新載入,因而可能符號引用其他檔案中的絕對位址。這和ld工具使用-R選項完全一樣。