我正在尝试运行一个使用libdnet的程序(Snort),但它无法找到它并输出以下信息:
snort: error while loading shared libraries: libdnet.1: cannot open shared object file: No such file or directory
现在我知道我应该通过运行
显然,ldconfig仅加载文件名中包含.so的文件,而libdnet.1不符合该模式。
我已经从源代码构建了libdnet并使用./configure; make; make install命令进行了安装。除非必须,否则我不想使用软件包管理器进行安装。我该怎么办?
编辑:这里说库应该匹配模式lib*.so*,但我不能重命名库。我既没有制作它,也没有在自己的应用程序中使用它:如果我重命名它,它将被加载,但我认为Snort正在寻找libdnet.1而不是libdnet.so.1。
snort: error while loading shared libraries: libdnet.1: cannot open shared object file: No such file or directory
现在我知道我应该通过运行
ldconfig
并将库的路径放入/etc/ld.so.conf
来添加库。libdnet位于/usr/local/lib
,因此我不必修改ld.so.conf
,因为它已经涵盖了该目录。所以我运行了以下命令,并跟踪输出,我注意到我的库没有被加载。ldconfig -v
显然,ldconfig仅加载文件名中包含.so的文件,而libdnet.1不符合该模式。
我已经从源代码构建了libdnet并使用./configure; make; make install命令进行了安装。除非必须,否则我不想使用软件包管理器进行安装。我该怎么办?
编辑:这里说库应该匹配模式lib*.so*,但我不能重命名库。我既没有制作它,也没有在自己的应用程序中使用它:如果我重命名它,它将被加载,但我认为Snort正在寻找libdnet.1而不是libdnet.so.1。