ldconfig只加载.so文件

时间:2014-03-04 15:20:21

标签: linux shared-libraries snort

我正在尝试运行使用libdnet的程序(Snort),但它无法找到它并输出:

  

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

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

ldconfig -v

显然ldconfig仅加载名称中某处.solibdnet.1与模式不匹配的文件。
我从源代码构建了libdnet并使用./configure; make; make install命令安装了它。除非必须,否则我宁愿不使用包管理器安装它。我该怎么办?

修改
它说here库应该匹配模式lib*.so*,但我不能重命名库。我既没有创建也没有在我自己的应用程序中使用它:如果我重命名它将被加载但我认为Snort正在寻找libdnet.1而不是libdnet.so.1

1 个答案:

答案 0 :(得分:3)

找到答案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
相关问题