Linux 设置 LD_LIBRARY_PATH
在Linux下,如果自己写好一个动态链接库,需要在其他程序里调用,则需要让这些程序能找到这个动态链接库,如果设置的不对,就会出现类似的错误:
error while loading shared libraries: libmysqlclientso.so.: 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的更多相关文章
- linux设置LD_LIBRARY_PATH变量
在 Linux 下,如果你写好了自己的动态链接库,需要在其它程序里调用,则需要让这些程序能找到这些动态链接库.如果设置不对,会出现类似如下的错误: test: error while loading ...
- LInux下LD_LIBRARY_PATH的作用与设置
LD_LIBRARY_PATH环境变量主要是用于指定动态链接器(Id)超早elf可执行文件运行时所依赖的动态库(so)的路径,其内容是以冒号分隔的路径列表. Id链接器优先在该变量设置的路径中查找,若 ...
- 【转】linux 设置用户id 设置组id
linux 设置用户id 设置组id 转自 linux 设置用户id 设置组id 最近看apue,简单记录对设置用户id理解(设置组id同理). 1. 相关的id好像很多,共有哪些? 文件2个 ...
- 【未完待补充】linux 设置So动态库链接路径
缘起 安装python的包Rtree(Rtree-0.8.2),但需要先安装C语言依赖包spatialindex-src(spatialindex-src-1.8.5).在安装完spatialinde ...
- Linux设置禁止用户登陆
Linux设置禁止用户登陆 vim /etc/shadow 第二栏(密码栏)设为*,会丢失密码 usermod -L username # -L Lock; -U Unlock chsh userna ...
- Linux 设置系统时间和日期 API
嵌入式Linux 设置时间和日期 API ,它是busybox要提取的源代码. Linux设置时间和日期的步骤: 1. 设置系统时间和日期: 2. 该系统的时间和日期,同步到硬件. #include ...
- Linux - 设置Centos控制台模式的分辨率
因为我的Centos是用VMware虚拟机安装的,所以这里和直接安装的Centos修改值不太一样. 修改文件: 注意是在启动的系统条目后面"quiet"字段的加上 vga=0x36 ...
- Linux 设置core dump
Linux 设置core dump
- linux 设置分辨率(转)
linux 设置分辨率 如果你需要在linux上设置显示屏的分辨率,分两种情况:分辨率模式存在与分辨率模式不存在,具体如下. 1,分辨率模式已存在 1)如何查询是否存在: 图形界面:在System S ...
随机推荐
- DBA_Oracle Erp R12系统文件结构(概念)
20150609 Created By BaoXinjian
- DBA_实践指南系列4_Oracle Erp R12系统备份和恢复Backup(案例)
2013-12-04 Created By BaoXinjian
- Python 元组 count() 方法
描述 Python 元组 count() 方法用于统计某个元素在元祖中出现的次数. 语法 count() 方法语法: T.count(obj) 参数 obj -- 元祖中统计的对象. 返回值 返回元素 ...
- (二)RocketMq入门之消息发送和接收
一.消息产生.发送 public class Producer { public static void main(String[] args) throws MQClientException { ...
- django web 笔记
安装 django pip install django 创建虚拟环境 python -m venv testenvironment 进入虚拟环境: testenvironment\Script ...
- 从jar包中读取资源
package myspider; import java.io.UnsupportedEncodingException; /** * * @author mark */ public class ...
- Gitbook 生成 pdf 中文字体错乱问题解决办法
Gitbook 生成 pdf 中文字体错乱问题解决办法 用过 Gitbook 的都知道, Gitbook 会自动生成 pdf 以提供下载, 但十分遗憾的是自动生成的 pdf 对中文的支持并不好, ...
- android获取对话框文本注意事项
1.View注意设置成final类型如final View layout=.. . 2.获取文本框对象时候格式EditText e = (EditText)layout.findViewById(R. ...
- cscope使用技巧
1.执着cscope.files文件,对源码目前全文件搜索 find `pwd` -type f > cscope.files `pwd`生成当前目录的绝对路径,这样在cs命令里面就可以不用写那 ...
- android framework-安装samba
用于在windows下使用souceinsight访问linux中的android源代码. □ apt-get install samba samba-common #安装samba ...