ldconfig no encuentra libprotobuf.so

ldconfig no encuentra libprotobuf.so

Estoy intentando instalar elprotobufbiblioteca en un sistema Redhat (compilación Linux de Amazon EC2). Ejecuté configure, makey make installsin problemas, y las .sobibliotecas se copiaron en /usr/local/lib. Como Redhat no incluye el /usr/local/libdirectorio /etc/ld.so.conf, lo agregué y luego ejecuté ldconfigpara actualizar los enlaces.

Mi problema es que, por alguna razón, ldconfigno contesta libprotobuf.so, aunque esté en el /usr/local/libdirectorio.

Aquí está el resultado de 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

Aquí está el resultado de ldconfig -v | grep protobuf:

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

¿Qué tengo que hacer para que libprotobufel enlazador me reconozca?

Editar: Cuando intento vincular la biblioteca directamente, aparece este error:

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

Intenté copiarlo libprotobuf.so.7.0.0para libprotobuf.soque ya no sea un enlace simbólico, lo que solucionó el error, pero mi vinculador aún no puede encontrarlo libprotobuf.

Respuesta1

ld.so.confsolo lo utiliza el vinculador dinámico en tiempo de ejecución. ldno nos parece eso en absoluto: debe pasarlo /usr/local/libcomo un directorio de búsqueda del vinculador (ya sea directamente ldsi lo está llamando directamente o mediante su compilador).

Para ld, GCC (o clang, y posiblemente algunos otros compiladores), lo haces con la -Lbandera.

información relacionada