linux ld.so.conf,Linux下常见的~/.bashrc、/etc/profile、/etc/ld.so.config小科普以及caffe编译遇到的相关问题解决...
发布日期:2022-02-03 15:25:08 浏览次数:6 分类:技术文章

本文共 1401 字,大约阅读时间需要 4 分钟。

~/.bashrc

用于非交互式模式,即nonlogin shell,在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。

source ~/.bashrc

/etc/profile

用于交互模式,即login shell,这个文件是每个用户登录时都会运行的环境变量设置,并从/etc/profile.d目录的配置文件中搜集shell的设置。

如安装CUDA时:

sudo gedit /etc/profile, add the following path:

>>export PATH=/usr/local/cuda/bin:$PATH

>>export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

caffe编译时如果有这样的错误:’libprotobuf.so.10 is not found’

则需要在profile下添加路径

>>sudo gedit /etc/profile

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

>>source /etc/profile

>>cd /usr/local/lib

>>sudo ln -sf ~/anaconda2/lib/libprotobuf.so.10 libprotobuf.so.10

两者关系:/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是”父子”关系。

ld.so.conf

动态程序ln相比于静态程序sln小很多,但是如果动态可执行程序不包含运行所需的所有函数,Linux 的动态载入器负责将这些程序和所有必需的共享库一起装入。

动态装入器找到共享库要依靠两个文件:/etc/ld.so.conf 和 /etc/ld.so.cache。我们可以通过cat查看ld.so.config

当 ldconfig 操作结束时,您会有一个最新的 /etc/ld.so.cache 文件,它反映您对 /etc/ld.so.conf 所做的更改。从这一刻起,动态装入器在寻找共享库时会查看您在 /etc/ld.so.conf 中指定的所有新目录。

LD_LIBRARY_PATH

要指示动态装入器首先检查某个目录,请将 LD_LIBRARY_PATH 变量设置成您希望搜索的目录。多个路径之间用冒号分隔;例如:

# export LD_LIBRARY_PATH=”/usr/lib/old:/opt/lib”

caffe编译时,error while loading shared libraries: XXX.so: cannot open shared object file: No such file or directory。则需要将路径加入共享文件库:

sudo su

cat /etc/ld.so.conf

echo "XXX.soPATH" >> /etc/ld.so.conf

ldconfig

转载地址:https://blog.csdn.net/weixin_35600779/article/details/116892859 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:linux io优先级 默认,Linux进程优先级系统——设置实时进程优先级
下一篇:c语言vs编写贪吃蛇,刚学C语言,想写一个贪吃蛇的代码

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年03月28日 04时44分34秒