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选项完全一样。