Ubuntu:环境变量PATH、LIBRARY_PATH和LD_LIBRARY_PATH的区别

今天写有关PATH的时候发现还有LIBRARY_PATH和LD_LIBRARY_PATH这两个系统环境变量,到底这这三个系统变量到底有什么区别呢?

PATH
之前配置我们就需要设置PATH,配置环境,否则使用:

nvcc -V

就会出现问题,所以PATH主要是系统通过PATH这个环境变量来获得可执行文件所在的位置,然后在运行一下对应的可执行文件,我们通过printenv命令查看一下:
在这里插入图片描述
可以看到添加到PATH变量下的路径基本都是不同软件bin文件夹,也证实了我们之前的说法

那么看上去特别像的LIBRARY_PATH和LD_LIBRARY_PATH它们之间到底有什么区别呢?
在这里插入图片描述上面是LZ搜到的高赞回答。

LIBRARY_PATH: gcc在编译之前使用LIBRARY_PATH来搜索包含静态和共享库的目录,这些目录需要链接到您的程序。

LD_LIBRARY_PATH:程序已经成功编译并且链接成功后,使用LD_LIBRARY_PATH来搜索目录。

编辑:如上所示,您的库可以是静态的或共享的。 如果它是静态的,则代码将被复制到您的程序中,并且在您的程序被编译和链接后,您无需搜索库。 如果您的库是共享库,则需要将其动态链接到您的程序,这就是LD_LIBRARY_PATH发挥作用的时候。

所以按照上面的描述,LD_LIBRARY_PATH变量中只有动态库有意义,静态库在编译的时候就已经加到编译的程序中了,自然也不需要添加到LD_LIBRARY_PATH这个路径下了。

参考地址:
https://stackoverflow.com/questions/4250624/ld-library-path-vs-library-path

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值