gcc中的環境變數

2021-06-19 05:08:22 字數 3104 閱讀 5625

有大量的環境變數可供設定以影響 gcc 編譯程式的方式。利用這些變數的控制也可使用合適的命令列選項。

一些環境變數設定在目錄名列表中。這些名字和 path 環境變數使用的格式相同。特殊字元 path_separator (安裝編譯程式的時候定義)用在目錄名之間。在 unix 系統中,分隔符是冒號,而 windows 系統中為分號。

c_include_path

編譯 c 程式時使用該環境變數。該環境變數指定乙個或多個目錄名列表,查詢標頭檔案,就好像在命令列中指定 -isystem 選項一樣。會首先查詢 -isystem 指定的所有目錄。

也見 cpath 、 cplus_include_path 和 objc_include_path 。

compiler_path

該環境變數指定乙個或多個目錄名列表,如果沒有指定 gcc_exec_prefix 定位子程式,編譯程式會在此查詢它的子程式。

也見 library_path 、 gcc_exec_prefix 和 -b 命令列選項。

cpath

編譯 c 、 c++ 和 objective-c 程式時使用該環境變數。該環境變數指定乙個或多個目錄名列表,查詢標頭檔案,就好像在命令列中指定 -l 選項一樣。會首先查詢 -l 指定的所有目錄。

也見 c_include_path 、 cplus_include_path 和 objc_include_path 。

cplus_include_path

編譯 c++ 程式時使用該環境變數。該環境變數指定乙個或多個目錄名列表,查詢標頭檔案,就好像在命令列中指定 -isystem 選項一樣。會首先查詢 -isystem 指定的所有目錄。

也見 cpath 、 c_include_path 和 objc_include_path 。

dependencies_output

為檔名設定該環境變數會讓預處理程式將基於依賴關係的 makefile 規則寫入檔案。不會包括系統標頭檔案名字。

如果環境變數設定為單名,被看作是檔案名字,而依賴關係規則的名字來自原始檔名字。如果定義中有兩個名字,則第二個名字是用作依賴關係規則的目標名。

設定該環境變數的結果和使用命令列選項 -mm 、 -mf 和 -mt 的組合是一樣的。也見 sunpro_dependencies 。

gcc_exec_prefix

如 果定義了該環境變數,它會作為編譯程式執行的所有子程式名字的字首。例如,如果將變數設定為 testver 而不是查詢 as ,彙編器首先會在名字 testveras 下查詢。如果在此沒有找到,編譯程式會繼續根據它的普通名進行查詢。可在字首名中使用斜線指出路徑名。

gcc_exec_prefix 的預設設定為 prefix /lib/gcc-lib/ ,這裡的 prefix 是安裝編譯程式時 configure 指令碼指定的名字。該字首也用於定位標準連線程式檔案,包含進來作為可執行程式的一部分。

如果使用 -b 命令列選項,會重寫該設定。也見 compiler_path 。

lang

該環境變數用於指出編譯程式使用的字符集,可建立寬字元文字、串文字和注釋。

定義 lang 為 c-jis ,指出預處理程式將多位元組字元按照 jis (日語工業標準)字元進行解釋。 c-sjis 可用來指出 shift -jis 字元而 c-eucjp 指出日文 euc 。

如果沒有定義 lang ,或定義為不可識別,函式 mblen() 被用來確定字元寬度,而 mbtowc() 用來將多位元組序列轉換為寬字元。

lc_all

如果設定,該環境變數的值重寫 lc_messages 和 lc_ctype 的所有設定。

lc_ctype

該 環境變數指出引用串中定義的多位元組字元的字元分類。主要用於確定字串的字元邊界,字元編碼需要用引號或轉義符,可被錯誤地解釋為字串的結尾或特殊字元 串。對 australian english ,可將它設定為 en_au ; 對 mexican spanish ,可將它設定為 es_mx 。如果沒有設定該變數,預設為 lang 變數的值,或如果沒有設定 lang ,那就使用 c 英語行為。也見 lc_all 。

lc_messages

該 環境變數指出編譯程式使用何種語言發出診斷訊息。對 australian english ,可設定為 en_au ; 對 mexican spanish ,可設定為 es_mx 。如果變數沒有設定,使用 lang 變數的預設值,或如果沒有設定 lang ,那就使用 c 英語行為。也見 lc_all 。

ld_library_path

該環境變數不會影響編譯程式,但程式執行的時候會有影響。變數指定乙個目錄列表,程式會查詢該列表定位共享庫。只有當未在編譯程式的目錄中找到共享庫的時候,執行程式必須設定該變數。

ld_run_path

該環境變數不會影響編譯程式,但程式執行的時候會有影響。該變數在執行時指出檔案的名字,執行的程式可由此得到它的符號名字和位址。位址不會重新載入,因而可能符號引用其他檔案中的絕對位址。這和 ld 工具使用 -r 選項完全一樣。

library_path

該環境變數可設定為乙個或多個目錄名字列表,連線程式會搜尋該目錄,以查詢特殊連線程式檔案,和由 -l (字母 l )命令列選項指定名字的庫。

由 -l 命令列選項指定的目錄在環境變數的前面,首先被查詢。也見 compiler_path 。

objc_include_path

在編譯 objective-c 程式的時候使用該環境變數。乙個或多個目錄名的列表由環境變數指定,用來查詢標頭檔案,就好像在命令列中指定 -isystem 選項一樣。所有由 -isystem 選項指定的目錄會首先被查詢。

也見 cpath 、 cplus_include_path 和 c_include_path 。

sunpro_output

為檔名設定該環境變數會令預處理程式將基於依賴關係的 makefile 規則寫入檔案。會包含系統頭檔名。

如果環境變數被設定為單個名字,它將會被當作檔名,依賴關係規則中的名字將由原始檔的名字中獲得。如果定義中有兩個名字,第二個名字就是依賴關係規則中的目標名。

設定該環境變數的結果與在命令列中使用引數 -m 、 -mf 和 -mt 的效果一樣。參見 dependencies_output 。

tmpdir

這個變數包含了供編譯程式存放臨時工作檔案的目錄的路徑名。這些檔案通常在編譯過程結束時被刪除。這種檔案的乙個例子就是由預處理程式輸出並輸入給編譯程式的檔案。

GCC中的環境變數

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

GCC 環境變數

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

GCC 環境變數

一些環境變數設定在目錄名列表中。這些名字和 path 環境變數使用的格式相同。特殊字元 path separator 安裝編譯程式的時候定義 用在目錄名之間。在 unix 系統中,分隔符是冒號,而 windows 系統中為分號。c include path 編譯 c 程式時使用該環境變數。該環境變數...