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標誌來執行此操作。

相關內容