【环境管理】linux 库路径的管理

库文档在连接(静态库和共享库)和运行(仅限于使用共享库的程式)时被使用,其搜索路径是在系统中进行配置的。一般 Linux 系统把 /lib 和 /usr/lib 两个目录作为默认的库搜索路径,所以使用这两个目录中的库时无需进行配置搜索路径即可直接使用。对于处于默认库搜索路径之外的库,需要将库的位置添加到库的搜索路径之中。

LD_LIBRARY_PATH

LD_LIBRARY_PATH是Linux环境变量名,该环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。

  • 调用条件:当执行函数动态链接.so时,如果此文件不在缺省目录下‘/lib’ and ‘/usr/lib’,那么就需要指定环境变量LD_LIBRARY_PATH
  • 语法规则:假如需要在已有的环境变量上添加新的路径名,则采用如下方式:LD_LIBRARY_PATH=NEWDIRS:$LD_LIBRARY_PATH.(newdirs是新的路径串)
  • 一次性设置:在linux终端下输入:export LD_LIBRARY_PATH=/opt/au1200_rm/build_tools/bin: $LD_LIBRARY_PATH: (重启就会失效)
  • 永久设置:打开vim /etc/bashrc进行添加
  • 与LIBRARY_PATH的区别LIBRARY_PATH is used by gcc before compilation to search for directories containing libraries that need to be linked to your program;LD_LIBRARY_PATH is used by your program to search for directories containing the libraries after it has been successfully compiled and linked.

虚拟环境中运行python包出现Permission denied解决方案

先交代一下环境,主环境是python3.5.2,虚拟环境是3.6.3,楼主在虚拟环境中运行涉及到cuda的程序时,遇到了cuda的库Permission denied的情况,这时候用sudo的话会直接切到主环境python3.5.2,我们sudo加上虚拟环境的python解释器的位置就可以。
举个例子:sudo ~/anaconda3/envs/python36/bin/python demo.py~/anaconda3/envs/python36/bin/python是虚拟环境python解释器的位置,后面就是你要在虚拟环境里面运行的程序)其实是和我们平时运行程序是一样的,只不过我们换个解释器而已~

部分文字出处:
https://blog.csdn.net/maotianwang/article/details/44619197

发布了35 篇原创文章 · 获赞 26 · 访问量 8499
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章