ldconfig findet libprotobuf.so nicht

ldconfig findet libprotobuf.so nicht

Ich versuche dieprotobufBibliothek auf einem Redhat-System (Linux-Build von Amazon EC2). Ich habe configure, make, und make installohne Probleme ausgeführt und die .soBibliotheken wurden nach kopiert . Da Redhat das Verzeichnis /usr/local/libnicht in einschließt , habe ich es hinzugefügt und dann ausgeführt, um die Verknüpfungen zu aktualisieren./usr/local/lib/etc/ld.so.confldconfig

Mein Problem besteht darin, dass aus irgendeinem Grund ldconfignichts abgeholt wird libprotobuf.so, obwohl es sich im /usr/local/libVerzeichnis befindet.

Hier ist die Ausgabe von 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

Hier ist die Ausgabe von ldconfig -v | grep protobuf:

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

Was muss ich tun, um libprotobufvom Linker erkannt zu werden?

Bearbeiten: Wenn ich versuche, die Bibliothek direkt zu verknüpfen, erhalte ich diesen Fehler:

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

Ich habe versucht, es durch Kopieren libprotobuf.so.7.0.0nicht libprotobuf.solänger als symbolischen Link zu verwenden. Dadurch wurde der Fehler behoben, aber mein Linker kann es immer noch nicht finden libprotobuf.

Antwort1

ld.so.confwird nur vom dynamischen Laufzeitlinker verwendet. ldDas funktioniert überhaupt nicht – Sie müssen es /usr/local/libals Suchverzeichnis des Linkers übergeben (entweder direkt, ldwenn Sie es direkt aufrufen, oder über Ihren Compiler).

Bei ldGCC (oder Clang und möglicherweise einigen anderen Compilern) tun Sie dies mit der -LFlagge.

verwandte Informationen