如何让linux加载当前目录的动态库
debian从7.0开始支持multiarch,64位库的路径改到/usr/lib/x86_64-linux-gnu了,mint、ubuntu这些衍生版有没有跟着改我就不清楚了。
deepin linux 是基于debian的,所以库路径也是/usr/lib/x86_64-linux-gnu
# 如何让linux加载当前目录的动态库
---------------------------
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只支持绝对路径。
原文: http://blog.csdn.net/wwwsq/article/details/1256577
如何让linux加载当前目录的动态库的更多相关文章
- linux 运行时加载不上动态库 解决方法(转)
		
1. 连接和运行时库文件搜索路径到设置 库文件在连接(静态库和共享库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的.一般 Linux 系统把 /lib 和 /usr ...
 - Delphi静态加载DLL和动态加载DLL示例
		
下面以Delphi调用触摸屏动态库xtkutility.dll为例子,说明如何静态加载DLL和动态加载DLL. 直接上代码. 1.静态加载示例 unit Unit1; interface uses W ...
 - linux加载指定目录的so文件
		
linux加载指定目录的so文件 http://blog.csdn.net/win_lin/article/details/8286125 download urlhttp://download.ch ...
 - 加载dll、lib库
		
2.是关于如何加载dll或lib库的.可以看这篇bog Qt调用dll中的功能函数点击打开链接 ************************************************** ...
 - linux下java调用.so动态库方法2: JNA
		
摘自:http://blog.csdn.net/todorovchen/article/details/21319033 另请参见: http://blog.sina.com.cn/s/blog_8c ...
 - 加载dll、lib库(例子的代码很全)
		
是关于如何加载dll或lib库的.可以看这篇bog Qt调用dll中的功能函数点击打开链接 **************************************************** ...
 - 【清单】值得「等待」的12个指示加载状态的 js 库
		
以下优选 GitHub 上高 star 的指示加载状态的 JavaScript 库.另外这里还有10个有意思的 JavaScript 实战小项目供大家学习. 上期入口:一份数据分析学习清单.xls M ...
 - 解决安装mysql-connector-odbc-5.3.2 错误1918……不能加载安装或转换器库……的BUG
		
还是在虚拟机Windows Server 2003上安装mysql-connector-odbc-5.3.2,装着装着就报错了,大致是“错误1918……不能加载安装或转换器库……”,问我Retry,I ...
 - 《Linux内核分析》 week8作业-Linux加载和启动一个可执行程序
		
一.ELF文件格式 ELF(Executable and Linking Format)是x86 Linux系统下常用的目标文件格式,有三种主要类型: 适于连接的可重定位文件,可与其他目标文件一起创建 ...
 
随机推荐
- 如何在sublime3项目设置中设置python模块的搜索路径?ImportError: No module named *的解决办法
			
问题:之前使用pycharm,用的挺溜,但是电脑配置实在不争气,pycharm启动久了,耗去大量内存,导致运行起来越来越慢,于是转向使用sublime text. 把项目从pycharm切换到subl ...
 - (转)HBase 常用Shell命令
			
转自:http://my.oschina.net/u/189445/blog/595232 hbase shell命令 描述 alter 修改 ...
 - 如何将redis中的数据导入到本地MongoDB和MySQL数据库
			
将redis中的数据导入到本地MongoDB数据库 创建一个process_items_mongodb.py文件(文件名自定义): #!/usr/bin/env python # -*- coding ...
 - IDEA  java开发 Restful 风格的WebService
			
官网:https://www.jetbrains.com/help/idea/restful-webservices.html 1.在IntelliJ中创建新项目,选择Java Enterprise ...
 - 基于QTP的自己主动化測试框架介绍
			
继前面用了七章介绍了基于QTP的自己主动化測试框架,以下再用几个视频再补充一下. 视频一:基本框架特点介绍说明 .框架的特点从正反两面进行了分析以及主要思想 http://v. ...
 - es安装脚本
			
#!/bin/bash file_name="/sdzw/es5/conf/es.config" #安装目录 install_dir="/es5/esinstall&qu ...
 - errno , perror,strerror
			
1. 简介 很多系统函数在错误返回时将错误原因记录在libc定义的全局变量errno中,每种错误原因对应一个错误码. errno在头文件errno.h中声明,是一个整型变量,所有错误码都是正整数. 然 ...
 - 【笔记】js原生方法 在元素外部或内部实现添加元素功能(类似jq 的 insert 和 append)
			
介绍的这个方法是:insetAdjacentHTML() 方法 此方法接收两个参数: 第一个参数必为下列值: beforebegin:在调用的元素外部的前面添加一个目标元素 afterend:在调用元 ...
 - [Angular] Introduction to Angular Internationalization (i18n)
			
To add translation to the application: <button (click)="onEditCourse()" i18n>Edit bu ...
 - automake连载--Linux下使用automake入门
			
http://blog.csdn.net/shanzhizi/article/details/30246587 近来重要要总结一下automake的用法了,连载几篇网上已有的文章,以供参考. 作为Li ...