Qué comando se puede ver. biblioteca o. ¿Entonces archivos?
Mira qué símbolos hay en el archivo ejecutable.
Strip puede simplificar archivos ejecutables eliminando tablas de símbolos.
Si queremos extraer alguna información de texto del programa ejecutable, también podemos utilizar el comando strings.
Uso de cadenas de líneas
Las bibliotecas compartidas dinámicas * * * en el sistema operativo Linux se pueden dividir aproximadamente en tres categorías:
Nivel de sistema operativo * *. * Bibliotecas compartidas y bibliotecas de herramientas básicas del sistema
Por ejemplo, libc.so, libz.so, libpthread.so, etc. Estas bibliotecas del sistema se colocarán en los directorios /lib y /usr/lib. es un sistema operativo de 64 bits, también habrá directorios /lib64 y /usr /lib64. Si el sistema operativo tiene una interfaz gráfica, estará el directorio /usr/X11R6/lib. Si es un sistema operativo de 64 bits, estará el directorio /usr/x1r6/lib64. También puede haber otros directorios de bibliotecas del sistema para versiones específicas de Linux.
La integridad y las versiones correctas de estos archivos de biblioteca del sistema garantizan el funcionamiento normal de varios programas en Linux.
2. Sistema a nivel de aplicación * * * intercambio de bibliotecas.
Las bibliotecas que no están incluidas en el sistema operativo pero que pueden ser utilizadas por muchas aplicaciones generalmente se ubican en los directorios /usr/local/lib y /usr/local/lib64. Muchos programas compilados e instalados por usted mismo agregarán automáticamente /usr/local/lib al parámetro -L de gcc al compilar, y automáticamente irán a /usr/local/lib para encontrar la biblioteca * * * cuando se ejecute.
La aplicación encontrará automáticamente las dos bibliotecas dinámicas * * * anteriores y no es necesario que usted las configure ni se preocupe por ellas. ¿Por qué es esto? Porque de forma predeterminada, estos directorios se agregan a la ruta de búsqueda del vinculador dinámico. La ruta de búsqueda para la biblioteca del sistema Linux * * * se define en el archivo de configuración /etc/ld.so.conf. El formato del contenido del archivo es aproximadamente el siguiente:
/usr/X11R6/lib64.
/usr/X11R6/lib
/usr/local/lib
/lib64
/Biblioteca
/usr/lib64
/usr/lib
/usr/local/lib64
/usr/local/ImageMagick/lib
Supongamos que la compilamos e instalamos nosotros mismos. La biblioteca de gráficos ImageMagick está en el directorio /usr/local/ImageMagick. Esperamos que otras aplicaciones puedan usar la biblioteca dinámica * * * de ImageMagick, entonces solo necesitamos agregar /usr/local/ImageMagick. /lib al archivo /etc/ld.so.conf y luego ejecute el comando :ldconfig.
Ldcofig buscará en todos los directorios anteriores y creará un archivo de caché /etc/ld.so.cache para la biblioteca de disfrute * * *.
Para confirmar que ldconfig ha buscado en la biblioteca ImageMagick, podemos usar el comando de cadenas presentado anteriormente para extraer información de texto de ld.so.cache para verificar:
strings/etc/LD cache | grep ImageMagick
El resultado de salida es:
/usr/local/ImageMagick/lib/libwand so. /libwand.entonces
/usr/local/ImageMagick/lib/libmagick entonces
/usr/local/ImageMagick/lib/libmagick. >/usr /local/ImageMagick/lib/libmagick++ 10
/usr/local/ImageMagick/lib/libmagick++. Así que
¡funcionó!
3. Bibliotecas * * * dinámicas dedicadas a aplicaciones
Hay muchas * * * bibliotecas compartidas que solo son utilizadas por aplicaciones específicas, por lo que no es necesario agregar rutas de biblioteca del sistema. para evitar aplicaciones * * *Conflictos de versión entre bibliotecas compartidas. Por lo tanto, Linux también puede especificar temporalmente la * * * ruta de búsqueda de biblioteca compartida de la aplicación configurando la variable de entorno LD_LIBRARY_PATH. Al igual que en el ejemplo que dimos anteriormente, podemos preestablecer LD_LIBRARY_PATH en el script de inicio de la aplicación y especificar la * * * ruta de búsqueda de biblioteca compartida adicional de la aplicación, para que la aplicación pueda encontrarla.