库文档在连接(静态库和共享库)和运行(仅限于使用共享库的程式)时被使用,其搜索路径是在系统中进行配置的。一般 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