2014-03-04 41 views
2

我试图运行一个程序,使用libdnet(Snort的),但它没有找到它和输出:装载LDCONFIG仅.so文件

哼了一声:错误而载入共享库:libdnet.1:不能打开 共享对象文件:没有这样的文件或目录

现在我知道,我应该通过运行ldconfig并把路径库/etc/ld.so.conf添加库。 libdnet位于/usr/local/lib,所以我不需要修改ld.so.confit already covers that dirctory以来。所以我跑了下面的命令并跟踪输出,我注意到我的库没有被加载。

ldconfig -v 

显然只LDCONFIG加载那些在他们的名字.so的地方,并libdnet.1不匹配的模式文件。
我已经从源码构建libdnet并使用./configure; make; make install命令安装它。我宁愿不使用包管理器来安装它,除非必须。我该怎么办?

编辑:
它说here,图书馆应该匹配图案lib*.so*但我不能重新命名的图书馆。我既没有这样做,也没有在自己的应用中使用它:如果我重命名它会被加载,但我认为Snort正在寻找libdnet.1而不是libdnet.so.1

回答

2

找到了答案here。解决方案很简单:制作一个与模式相匹配的副本。

cp /usr/local/lib/libdnet.1.0.1 /usr/local/lib/libdnet.so.1.0.1 

一个不太优选的alternative

$ LD_LIBRARY_PATH=/usr/local/lib 
$ export LD_LIBRARY_PATH