首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到Linux - SO文件

找不到Linux - SO文件
EN

Stack Overflow用户
提问于 2013-08-31 11:16:50
回答 6查看 17.3K关注 0票数 7

我有一个程序,需要安装liblog4cpp才能运行。

现在,我希望程序在没有liblog4cpp的另一台机器上运行。所以我只需要找到log4cpp.so并把它移到我的程序的同一个目录中。但在运行错误报告时:

加载共享库时出错: liblog4cpp.so.4:无法打开共享对象文件:没有这样的文件或目录

我做得对吗?我如何告诉程序找到它旁边的SO文件?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-08-31 11:22:39

检查您的LD_LIBRARY_PATH环境变量..。路径上的目录之一应该指向log4cpp.so文件的位置;此外,linux命令ldd可以方便地确定可执行文件中使用的共享对象库。语法是ldd <executable>

票数 9
EN

Stack Overflow用户

发布于 2013-08-31 11:28:29

除了其他人的建议外,考虑将文件添加到动态链接器的缓存中。你可以这样做:

代码语言:javascript
复制
ldconfig -l /path/to/lib/liblog4.so.4

要将其添加到加载程序的缓存中,请使用以下命令:ldconfig

然后,为了验证添加是否正确,请运行以下命令:

代码语言:javascript
复制
ldconfig -v | grep liblog
票数 10
EN

Stack Overflow用户

发布于 2013-08-31 14:17:41

假设.so文件/s可用的路径是/path,您也可以避免导出环境变量,只需使用

代码语言:javascript
复制
LD_LIBRARY_PATH=/path ./myProgram

请注意,如果你这样做了:

代码语言:javascript
复制
export LD_LIBRARY_PATH=/path

您正在将LD_LIBRARY_PATH重置为单个值/path,并丢失之前添加到此环境变量的任何内容。如果您想在不丢失以前的值的情况下添加一个值

代码语言:javascript
复制
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18547551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档