linux的环境变量总结

前言

本文用于总结linux中常用的环境变量,用于备忘。文中内容来源于网络,所有参考文章均会在文末列出,内容会不断更新。

1 路径相关的环境变量

1.1 PATH

记录可执行文件的路径,比如我们通过shell执行命令时,shell就会在PATH记录的一系列路径下寻找命令对应的可执行文件。

1.2 *_INCLUDE_PATH

这类环境变量通常会被GCC使用,用来记录一系列头文件目录,GCC搜索头文件时,回去这些目录查找:

  • C_INCLUDE_PATH:记录C语言的头文件目录;
  • CPLUS_INCLUDE_PATH:记录CPP的头文件目录;
  • OBJC_INCLUDE_PATH:记录OC的头文件目录。

补充说明——GCC搜索头文件的优先顺序

  1. 当前目录(如果使用了""包含头文件);
  2. 编译选项中-I指定的目录;
  3. 环境变量*_INCLUDE_PATH记录的一系列头文件目录;
  4. GCC预设的头文件目录,如不使用-nostdinc选项,则这些预设的目录总是会被搜索,因此放在最后。上文所谓预设的头文件目录在GCC手册中被称为standard system directories for header files,通常是/usr/include/usr/local/include/usr/lib/gcc/x86_64-linux-gnu/4.8/include等。

1.3 LIBRARY_PATH

记录一系列的库文件目录(动态/静态),在程序的编译链接期间,GCC搜索-l选项指定的库文件时,会在该环境变量记录的目录中搜索。


补充说明——GCC搜索库文件的优先顺序

  1. -L选项指定的目录;
  2. 环境变量LIBRARY_PATH记录的一系列库文件目录;
  3. GCC预设的库文件目录,通常是/lib/usr/lib/usr/local/lib等。

1.4 LD_LIBRARY_PATH

记录一系列的动态库目录,在程序的加载运行期间,动态链接/加载器(ld-linux.so.2)搜索并加载程序依赖的动态库时,会在该环境变量记录的目录中搜索。


补充说明——动态链接/加载器搜索动态库的优先顺序

  1. 编译链接时指定的动态库搜索路径。具体的,通过GCC的编译选项-Wl,-rpath=dir1:dir2可以把动态库搜索路径dir1dir2添加到可执行文件中。同时,该选项也有在编译链接时使链接器搜索其指定目录的作用。要注意该选项与-L选项的区别,-L选项用于编译链接时添加库文件的搜索路径;而该选项仅限于动态库,既可以在编译链接时添加搜索路径,同时也能将搜索路径添加到可执行文件中以便加载运行时使用;
  2. 环境变量LD_LIBRARY_PATH指定的动态库搜索路径;
  3. 配置文件/etc/ld.so.conf中指定的动态库搜索路径。需要说明的是,通过修改该配置文件来添加搜索目录时,须在修改后运行ldconfig命令以刷新缓存文件/etc/ld.so.cache,进而使修改后的配置生效;
  4. 默认的动态库搜索路径/lib
  5. 默认的动态库搜索路径/usr/lib

参考文献

[1] 鸟哥的linux私房菜
[2] GCC手册
[3] gcc的头文件、库文件默认搜索路径

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值