我有一个程序,需要安装liblog4cpp才能运行。
现在,我希望程序在没有liblog4cpp的另一台机器上运行。所以我只需要找到log4cpp.so并把它移到我的程序的同一个目录中。但在运行错误报告时:
加载共享库时出错: liblog4cpp.so.4:无法打开共享对象文件:没有这样的文件或目录
我做得对吗?我如何告诉程序找到它旁边的SO文件?
发布于 2013-08-31 11:22:39
检查您的LD_LIBRARY_PATH环境变量..。路径上的目录之一应该指向log4cpp.so文件的位置;此外,linux命令ldd可以方便地确定可执行文件中使用的共享对象库。语法是ldd <executable>。
发布于 2013-08-31 11:28:29
除了其他人的建议外,考虑将文件添加到动态链接器的缓存中。你可以这样做:
ldconfig -l /path/to/lib/liblog4.so.4要将其添加到加载程序的缓存中,请使用以下命令:ldconfig
然后,为了验证添加是否正确,请运行以下命令:
ldconfig -v | grep liblog发布于 2013-08-31 14:17:41
假设.so文件/s可用的路径是/path,您也可以避免导出环境变量,只需使用
LD_LIBRARY_PATH=/path ./myProgram请注意,如果你这样做了:
export LD_LIBRARY_PATH=/path您正在将LD_LIBRARY_PATH重置为单个值/path,并丢失之前添加到此环境变量的任何内容。如果您想在不丢失以前的值的情况下添加一个值
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/pathhttps://stackoverflow.com/questions/18547551
复制相似问题