Linux下链接动态链接库时注意

56 篇文章 1 订阅

遇到的问题,记录一下。

在centos下编译动态库,测试的时候始终通不过,一直报错,在网上查资料,想起来编译链接动态库时需要设置查询动态库的路径,我设置的是LD_LIBRARY_PATH,命令为

export LD_LIBRARY_PATH=$(BIN_DIR):$LD_LIBRARY_PATH

//$(BIN_DIR) 替换成你想设置的那个路径

这个export是临时设置的,重启终端后就不存在了。

网上搜寻到一篇博客,讲设置环境变量的方法的,我借鉴过来。

Linux环境变量设置方法总结 PATH、LD_LIBRARY_PATH

PATH:  可执行程序的查找路径

查看当前环境变量:

echo $PATH

设置:

方法一:export PATH=PATH:/XXX 但是退出当前终端后就失效

方法二:修改 ~/.bashrc 或 ~/.bash_profile或系统级别的/etc/profile

1. 在其中添加例如export PATH=/opt/ActivePython/bin:$PATH

2. source .bashrc  (Source命令也称为“点命令”,也就是一个点符号(.)。

source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录)

LD_LIBRARY_PATH: 动态库的查找路径

设置:

方法一: export  LD_LIBRARY_PATH=LD_LIBRARY_PATH:/XXX 但是退出当前终端后就失效

方法二: 修改~/.bashrc或~/.bash_profile或系统级别的/etc/profile

1. 在其中添加例如export LD_LIBRARY_PATH=/opt/ActiveP/lib:$LD_LIBRARY_PATH

2. source .bashrc  (Source命令也称为“点命令”,也就是一个点符号(.)。source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录)

方法三:这个没有修改LD_LIBRARY_PATH但是效果是一样的实现动态库的查找,

1. /etc/ld.so.conf下面加一行/usr/local/mysql/lib

2. 保存后执行 ldconfig  生效

(ldconfig 命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表.)

方法三设置稍微麻烦,好处是比较不受用户的限制。

ld.so.conf 里面配置之后,添加的路径为最优先路径;

[root@host ~]# cat /etc/ld.so.conf

include ld.so.conf.d/*.conf

/usr/local/fan/lib

/usr/local/fan/lib64

 一定一定要记住,链接动态库(也就是共享库)要设置环境变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值