ldconfig 找不到 libprotobuf.so

ldconfig 找不到 libprotobuf.so

我正在尝试安装原始缓冲区Redhat 系统(Amazon EC2 的 Linux 版本)上的库。我运行configure, makemake install没有出现任何问题,并且.so库被复制到/usr/local/lib.由于 Redhat/usr/local/lib中不包含该目录/etc/ld.so.conf,因此我添加了它,然后运行ldconfig以更新链接。

我的问题是,无论出于何种原因,即使它位于目录中ldconfig,也没有拾取。libprotobuf.so/usr/local/lib

这是输出ls -l /usr/local/lib

total 61336
-rw-r--r-- 1 root root 17654940 Mar 26 02:39 libprotobuf.a
-rwxr-xr-x 1 root root      994 Mar 26 02:39 libprotobuf.la
-rw-r--r-- 1 root root  1948106 Mar 26 02:39 libprotobuf-lite.a
-rwxr-xr-x 1 root root     1029 Mar 26 02:39 libprotobuf-lite.la
lrwxrwxrwx 1 root root       25 Mar 26 02:39 libprotobuf-lite.so -> libprotobuf-lite.so.7.0.0
lrwxrwxrwx 1 root root       25 Mar 26 02:39 libprotobuf-lite.so.7 -> libprotobuf-lite.so.7.0.0
-rwxr-xr-x 1 root root   893083 Mar 26 02:39 libprotobuf-lite.so.7.0.0
lrwxrwxrwx 1 root root       20 Mar 26 02:39 libprotobuf.so -> libprotobuf.so.7.0.0
lrwxrwxrwx 1 root root       20 Mar 26 02:39 libprotobuf.so.7 -> libprotobuf.so.7.0.0
-rwxr-xr-x 1 root root  7326093 Mar 26 02:39 libprotobuf.so.7.0.0
-rw-r--r-- 1 root root 25883264 Mar 26 02:39 libprotoc.a
-rwxr-xr-x 1 root root     1010 Mar 26 02:39 libprotoc.la
lrwxrwxrwx 1 root root       18 Mar 26 02:39 libprotoc.so -> libprotoc.so.7.0.0
lrwxrwxrwx 1 root root       18 Mar 26 02:39 libprotoc.so.7 -> libprotoc.so.7.0.0
-rwxr-xr-x 1 root root  9071740 Mar 26 02:39 libprotoc.so.7.0.0
drwxr-xr-x 2 root root     4096 Mar 26 02:39 pkgconfig

这是输出ldconfig -v | grep protobuf

libprotobuf.so.7 -> libprotobuf.so.7.0.0
libprotobuf-lite.so.7 -> libprotobuf-lite.so.7.0.0

我需要做什么才能被libprotobuf链接器识别?

编辑:当我尝试直接链接库时,出现此错误:

ldconfig: Ignored file /usr/local/lib/libprotobuf.so since it is not a regular file.

我尝试复制libprotobuf.so.7.0.0libprotobuf.so使其不再是符号链接,这修复了错误,但我的链接器仍然找不到libprotobuf.

答案1

ld.so.conf仅由运行时动态链接器使用。ld我们根本不这样做 - 您需要/usr/local/lib作为链接器搜索目录传递(ld如果您直接调用它,则直接传递,或者通过编译器传递)。

对于ld、GCC(或 clang,可能还有很多其他编译器),您可以使用该-L标志来执行此操作。

相关内容