在Linux下,如果自己写好一个动态链接库,需要在其他程序里调用,则需要让这些程序能找到这个动态链接库,如果设置的不对,就会出现类似的错误:
error while loading shared libraries: libmysqlclientso.so.0: cannot open shared object file: No such file or directory
这是因为没有把动态链接库的路径放到变量LD_LIBRARY_PATH里。
可以执行=shell命令:export LD_LIBRARY_PATH=自己的动态链接库路径:$LD_LIBRARY_PATH

以上做法,只是临时设置变量 LD_LIBRARY_PATH ,下次开机,一切设置将不复存在;如何把这个值持续写到 LD_LIBRARY_PATH 里呢?
我们可以在 ~/.bashrc 或者 ~/.bash_profile 中加入 export 语句,前者在每次登陆和每次打开 shell 都读取一次,后者只在登陆时读取一次。

我的习惯是加到 ~/.bashrc 中,在该文件的未尾,可采用如下语句来使设置生效:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
修改完后,记得关掉当前终端并重新打开一个新的终端,从而使上面的配置生效。

不过这个环境变量是基于shell的,也就是说只有在当前设置了的shell里才会有作用,因此每次打开新的shell运行程序不停地设置LD_LIBRARY_PATH,是一件非常麻烦的事情,所以我们就会想有不有什么一劳永逸地方法,使得设置之后就不用再去设置了?答案是肯定的,即在~/目录下打开.bash_profile文件,设置环境变量如下:
LD_LIBRARY_PATH=dir:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
LD_LIBRARY_PATH  这个环境变量是大家最为熟悉的,它告诉loader:在哪些目录中可以找到共享库。可以设置多个搜索目录,这些目录之间用冒号分隔开。

在linux下,还 提供了另外一种方式来完成同样的功能,你可以把这些目录加到/etc/ld.so.conf中,然后调用ldconfig。当然,这是系统范围内全局有效 的,而环境变量只对当前shell有效。按照惯例,除非你用上述方式指明,loader是不会在当前目录下去找共享库的,正如shell不会在当前目前找 可执行文件一样。

Linux 设置 LD_LIBRARY_PATH相关推荐

  1. linux设置anaconda环境变量,在Linux中永久设置Anaconda环境变量的方法

    [感谢:http://www.codesec.net/view/459539.html] 如果在安装Anaconda的过程中没有将安装路径添加到系统环境变量中,需要在安装后手工添加: 1.在终端输入$ ...

  2. linux设置ulimit值永久生效

    linux设置ulimit值永久生效 小知识的积累,转自 http://hi.baidu.com/moonelf9989/blog/item/1deadf12780fa0c5c2fd789d.html ...

  3. Linux设置开机启动

    Linux设置开机启动有几种方式,今天就来讨论以下几种方式. 方法一:编辑rc.loacl脚本 直接在/etc/rc.local中添加启动脚本. $ vim /etc/rc.local 方法二:Lin ...

  4. Linux 设置windows可见的文件夹共享,创建只拥有读权限的共享用户,samba工具安装,“smbpasswd: command not found“问题解决

    linux 设置 windows 可见的共享文件夹 第一章:文件夹共享设置方法 ① 设置文件共享,只拥有读权限 ② windows 用户访问测试 ③ samba 服务安装,"smbpassw ...

  5. VMware中为linux设置网络

    安装网络 给Linux设置网络是为了使用yum工具安装图形套件,然后启动图形界面. 1.登录黑框中输入命令,让CentOS 7 自动获取一个 IP地址 #dhclient 正常情况下是不会有输出的. ...

  6. linux 支持的字体命令,Linux设置显示中文和字体

    Linux设置显示中文和设置字体 设置中文 一.查看当前使用的系统语言 登陆linux系统打开操作终端之后,输入 echo $LANG可以查看当前使用的系统语言.如 echo $LANG image. ...

  7. Linux设置Oracle开机自启动

    Linux设置Oracle开机自启动 目录 1.编辑oratab    1 2.编辑rc.local    2 3.listener.log的权限    3 4.编辑dbstart    3 5.测试 ...

  8. 设置LD_LIBRARY_PATH不起作用解决

    遇到的现象: 将/usr/local/lib加入共享库搜索目录中:               sudo vim  /etc/profile 将export LD_LIBRARY_PATH=$LD_L ...

  9. 在linux设置回收站 - 防止失误操作造成数据清空,并定期清理

    安装trash sudo apt-get install trash-chi 原理 执行trash命令后,是将文件移动了用户的回收站,每个用户的回收站路径为$HOME/.local/share/Tra ...

最新文章

  1. Spring注入---实例工厂
  2. redis有值查询返回null_Redis缓存穿透、缓存并发、热点缓存之最佳招式
  3. webpack配置es6开发环境
  4. Struts2与Servlet之间的关系
  5. DOS命令未公开的命令
  6. Android之在ubuntu过滤日志以及ps总结
  7. html div父集子集,抛砖引玉css系列---根据父元素包含的子元素个数,实现不同的样式...
  8. 前端笔记-Vue中缺少router-view导致跳转失效
  9. Go语言开发设置代理Goproxy,提高Go安装模块速度
  10. 软件工程作业团队作业No.5
  11. 为域用户创建漫游用户配置文件
  12. idea启动日志在哪里_艹,我的日志被Intellij IDEA 控制台给“吃”了!
  13. 图书馆管理系统前景与范围文档
  14. WS2:Windows系统中嵌入式Linux开发之神器
  15. 易语言服务器取cookie,QQ取本机cookie操作空间易语言源码
  16. 魔方cfop公式软件_【二阶篇】一个万能公式还原二阶魔方
  17. Webview调用支付宝客户端
  18. linux里面如何配置软路由,Linux中增加软路由的两种方法
  19. android 查看 屏幕刷新率,屏幕刷新率检查app
  20. JAVA表达爱意_520表白日;程序员不会说爱?来一种属于程序员的满满爱意

热门文章

  1. Linux 性能监控、测试、优化工具
  2. 区别js中的3/2(结果1.5))与 java 中的 2/3(结果:0)
  3. Oracle中wm_concat函数报错解决方法
  4. C# 让你解决方案乱七八糟的DLL放入指定文件夹
  5. 微信H5页面嵌入百度地图---解决手机的webKit定位,ios系统对非https网站不提供支持问题
  6. System.IO.FileNotFoundException 找不到指定的模块问题解决
  7. axios请求中跨域及post请求问题解决方案
  8. 分表分库解决方案(mycat,tidb,shardingjdbc)
  9. 深度学习解决NLP问题:语义相似度计算
  10. msfconsole启动失败并报错`not_after=‘: bignum too big to convert into `long‘的解决方法