Linux下应用程序找不到存在的库(.so/.a)的解决方法
来源:互联网 发布:php简历管理系统下载 编辑:程序博客网 时间:2024/06/11 05:42
各种各样的环境变量控制着一些关键的过程。例如你可以临时为你特定的程序的一次执行指定一个不同的函数库。Linux系统中,通常变量LD_LIBRARY_PATH就是可以用来指定函数库查找路径的,而且这个路径通常是在查找标准的路径之前查找。这个是很有用的,特别是在调试一个新的函数库的时候,或者在特殊的场合使用一个肥标准的函数库的时候。环境变量LD_PRELOAD列出了所有共享函数库中需要优先加载的库文件,功能和/etc/ld.so.preload类似。这些都是有/lib/ld-linux.so这个loader来实现的。值得一提的是,LD_LIBRARY_PATH可以在大部分的UNIX-linke系统下正常起作用,但是并非所有的系统下都可以使用,例如HP-UX系统下,就是用SHLIB_PATH这个变量,而在AIX下则使用LIBPATH这个变量。
LD_LIBRARY_PATH在开发和调试过程中经常大量使用,但是不应该被一个普通用户在安装过程中被安装程序修改,大家可以去参考http://www.visi.com/~barr/ldpath.html,这里有一个文档专门介绍为什么不使用LD_LIBRARY_PATH这个变量。
环境变量LD_LIBRARY_PATH列出了查找共享库时除了默认路径之外的其他路径。
如果不想修改或无法修改(无root权限)/etc/ld.so.conf而使用其他路径下的库文件
就需要设置LD_LIBRARY_PATH了。
例:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/lib
这样就可以使用/opt/lib下的库文件啦。当然还是修改/etc/ld.so.conf方便。
另一篇文章:
关于 error while loading shared libraries: libXXX.so.1.2.3: cannot open shared object file: No such file or directory
然后如果发现了libXXX.so.1.2.3的确存在,就把libXXX.so.1.2.3所在的目录加入到 /etc/ld.so.conf 中,或者在 /etc/ld.so.conf.d/ 下新建一文件,如 XXX.conf ,其内容是libXXX.so.1.2.3所在的目录。如果提示是error while loading shared libraries: libXXX.so,但你的系统上有libXXX.so.5,你可以为libXXX.so.5做一个软链接 ln -s libXXX.so.5 libXXX.so.
在linux下,可以把动态链接库的目录加入这个文件,然后执行一下ldconfig。这样程序就能找到动态链接库了
- Linux下应用程序找不到存在的库(.so/.a)的解决方法
- Linux 下 Eclipse编译找不到so库文件的解决方法
- linux找不到动态链接库 .so文件的解决方法
- linux找不到动态链接库 .so文件的解决方法
- linux找不到动态链接库 .so文件的解决方法
- linux找不到动态链接库 .so文件的解决方法
- linux找不到动态链接库 .so文件的解决方法
- linux找不到动态链接库 .so文件的解决方法
- linux找不到动态链接库 .so文件的解决方法
- linux找不到动态链接库 .so文件的解决方法
- linux找不到动态链接库 .so文件的解决方法
- linux找不到动态链接库 .so文件的解决方法
- linux找不到动态链接库 .so文件的解决方法
- Linux下找不到so文件的解决办法
- Linux下找不到so文件的解决办法
- Linux下找不到共享库的解决方法
- linux系统下找不到.so文件->解决方法
- Linux应用程序调用指定路径下的SO库
- Intel平台下linux中 ELF文件动态链接的加载、解析及实例分析(二): 函数解析与卸载
- 浅谈用户体验与界面设计
- probleme directshow wmv (手动创建graph)
- asp+ajax 验证用户名是否存在
- DataGridView控件用法合集(九)
- Linux下应用程序找不到存在的库(.so/.a)的解决方法
- 初学table
- SqlDbType 与 .Net 数据类型对照表
- 事务处理Transaction
- DataList控件详细用法(一)
- 调节全部音量
- 老是忘了登录信息,没办法,重新注册
- sender对象的使用方法笔记
- 多文件上传功能