如何让linux加载当前目录的动态库

news/2024/7/10 4:16:03 标签: linux, library, path, terminal, windows, unix
转自 http://blog.csdn.net/wwwsq/archive/2006/09/21/1256577.aspx
 
linux的excutable在执行的时候缺省是先搜索/lib和/usr/lib这两个目录,然后按照ld.so.conf里面的配置搜索绝对路径,linux缺省是不会在当前目录搜索动态库的。windows加载动态库的时候,缺省是首先加载本地目录下的动态库,然后再搜索windows/system和windows/system32目录。
windows的动态库搜索顺序,虽然有可能会造成潜在的混乱,但是对于开发和测试无疑是比较方便的,尤其是debug和release版本的动态库需要经常切换进行测试的时候。linux的动态库搜索顺序虽然可以说成是比较严谨,但是相对来说也比较呆板,有时候会造成不便。

其实,linux也可以支持“加载当前目录的动态库”。只要设置合适的环境变量LD_LIBRARY_PATH就可以了。设置方法有以下三种:

1、临时修改,log out之后就失效
terminal中执行:export LD_LIBRARY_PATH=./

2、让当前帐号以后都优先加载当前目录的动态库
修改~/.bash_profile在文件末尾加上两行: LD_LIBRARY_PATH=./ 和 export LD_LIBRARY_PATH

3、让所有帐号从此都优先加载当前目录的动态库
修改/etc/profile在文件末尾加上两行: LD_LIBRARY_PATH=./ 和 export LD_LIBRARY_PATH

PS:修改ld.so.conf不能达到我们的目的,因为ld.so.conf只支持绝对路径。
=======================================================
权威资料参考:

LD_LIBRARY_PATH 环境变量 [UNIX]


语法 

LD_LIBRARY_PATH=installation_path/lib

说明 

LD_LIBRARY_PATH 环境变量仅在 UNIX 上使用。它由安装程序修改为包括 Adaptive Server Anywhere 库所在的目录。

这些库位于安装目录的 lib 子目录中(例如,/opt/SYBSasa9/lib)。

在 Mac OS X 上使用的是 DYLD_LIBRARY_PATH 环境变量,而在 AIX 上使用的则是 LIBPATH 环境变量。 


http://www.niftyadmin.cn/n/1056055.html

相关文章

bootstrap 鼠标悬浮显示备注信息 两种实现方式

一&#xff0c;&#xff08;默认黑色字体白色背景&#xff09; sb.append("<td><a data-content"rowData[8]">").append(rowData[4]).append("</a></td>"); $(function(){ // 初始化 popover&#xff0c;触发方式为手动…

linuxLVM之LV扩大和缩小容量(非xfs文件系统)

LVM的基础请见&#xff1a;https://www.cnblogs.com/wxxjianchi/p/9698089.html 一、放大LV的容量。放大容量是由内而外来操作的。 1、设置新的lvm分区&#xff1a;用fdisk设置新的System ID为8e的分区。    补充&#xff1a;添加一块新的磁盘&#xff0c;使用partx [device…

Navicat for MySQL无法连接到数据库怎么办

注意端口就是3306&#xff0c;不要改成80之类的&#xff0c;访问数据库就是从这个端口过去的 转载于:https://www.cnblogs.com/acetaohai123/p/6625793.html

【转】ubuntu 双机热备

1、关于软件安装 sudo apt-get install libssl-dev sudo apt-get install openssl sudo apt-get install libpopt-dev sudo apt-get install keepalived 2、关于系统配置 文件所在位置&#xff1a;etc/keepalived/keepalived.conf Keepalived 配置实例配置完毕后&#xff1a…

RHEL5 DNS文件配置

用RHEL5默认安装了DNS服务&#xff0c;当使用service named start时发现缺少named.conf。从网上查了很多资料&#xff0c;结果还是没弄明白到底怎么写。&#xff08;最痛恨那些网上半瓶子咣当的人了&#xff0c;写得文章是让你似懂非懂来回抄袭&#xff0c;误人子弟不说&#x…

Problem E: 倒水(Water)

传送门&#xff1a;http://gdutcode.sinaapp.com/problem.php?cid1057&pid4 解题思路&#xff1a; 当瓶子个数为1,2,4,8,16,32,64......都能变为1个瓶子&#xff0c;那么n个瓶子最少能留下n二进制中1的个数。 实现代码&#xff1b; #include <cstdio> #include <…

mvc 之 RouteConfig配置

//这里没有使用对用的指定参数 1/Day_1:表示解决方案的名称&#xff0c;意思是默认找到该项目解决方案目录下的controllers进行匹配 routes.MapRoute("Default","{controller}/{action}/{id}",new { controller "Home", action "Index&…