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只支持绝对路径。
分享到:
相关推荐
Linux qtcreator动态加载动态链接库案例
Linux系统动态库加载过程1
很实用的例子,叫你如何在linux环境下编程时加载动态库。
通过一个linux应用程序加载库的异常问题,分析linux动态库的加载原理和流程
Linux下Java开发环境搭建以及加载C++动态库方法、、、
详细linux描述Qt生成so库,和应用程序(QMainwindow)加载动态库的方法,/
linux qt 动态链接库linux qt 动态链接库linux qt 动态链接库linux qt 动态链接库linux qt 动态链接库linux qt 动态链接库
Linux动态库动态加载实例[归类].pdf
Linux-调用加载动态库工程代码 对上个资源 test-ld动态库进行测试
General_NetSDKDemo_Chn_...这里的包是Linux64最全的,大华技术说其他的linux动态库都是有问题的 分三个包 大华设备各种Demo及所需jar包 \libs\linux64 examples.jar IStreamConvertor.jar jna.jar 版本5.0好像
lua动态链接库的编译 c++调用lua的的方法 linux中调用lua的环境配置
文中是linux下 C++动态库 实现接口提供类导出的一个例子 注意其中使用函数返回基类指针的用法,因为Linux的动态链接库不能像MFC中那样直接导出类 一、介绍 如何使用dlopen API动态地加载C++函数和类,是Unix C++...
Linux寄生程序加载动态库的研究与实现.pdf
库的存在极大的提高了C/C++程序的复用性,但是库对于初学者来说有些难以驾驭,本文从Linux的角度浅谈Linux下的静态库、动态库和动态加载库。 Linux库类型 Linux下可以创建两种类型的库: 1、静态库(.a): 在...
Linux-生成动态库工程和操作文件说明、调用加载动态库工程 本机是x86_64的 若想ARM,需加载ARM交叉编译工具链,运行即可 动态库代码在代码下一张
今天编译完程序运行的时候,报一个错误,说库文件不存在,然后我看了一下,程序的当前路径下就有这个库文件,我以前的认知是程序会首先在当前路径下找库,但是这个理解似乎对...动态库被创建后,一般都复制到这两个目录中。当
本代码将将win、linux加载、卸载动态库,并从动态库链接模块中获取类实例或函数地址等封装成统一的API接口,并集成在dllLoad.h/dllLoad.cpp中实现。构建一个注册类RegisterM,内置一个map容器,用来装载加载的动态...
Linux下不能加载动态库问题 当出现下边异常情况 ./test: error while loading shared libraries: libmfs_open.so: cannot open shared object file: No such file or directory 若动态库的路径在(/usr/cluster/....
关于库的测试代码,使用静态库动态库 解压工具tar
浅谈Linux下函数库的动态加载.pdf