¿Hay alguna forma de programación (¿llamada al sistema?) Para listar la dependencia de la biblioteca compartida en Linux? En lugar de usar ldd
...Programando la forma de listar la dependencia de la biblioteca compartida en Linux
Respuesta
Establezca la variable de entorno LD_TRACE_LOADED_OBJECTS en una cadena no vacía y ejecute su archivo binario. Mire la página del manual this.
LD_TRACE_LOADED_OBJECTS
(ELF only) If set to non-empty string, causes the program to list its dynamic library dependencies, as if run by ldd(1), instead of running normally.
¿Qué sucede si quiero verificar la dependencia de una biblioteca compartida, no un archivo binario? En este caso, no puedo ejecutar la biblioteca compartida ... Gracias. – flyingbin
Puede ejecutar ld.so en la biblioteca compartida de esta manera: /lib/ld-2.11.2.so --list /lib/libc.so.6 – ks1322
readelf -Wa lib.so|grep NEEDED
readelf -d lib.so es mucho más eficiente, ya que no funciona Necesito decodificar * toda * información. Además, esto no proporciona una lista completa (transitiva) de dependencias que 'ldd' proporciona; solo los directos. –
Ésta es la escritura del golpe sencilla yo mismo uso en Fedora, que se basa en encontrar-requiere de paquete RPM, se puede observar el interior de encontrar-requiere para encontrar qué herramientas que utiliza internamente.
#!/bin/bash
#
# Use rpm to recursively list dependencies of all files in a directory
#
# Syntax:
# lsdep path/to/directory
# Example:
# lsdep /usr/src/kernels/`uname -r`/
find $1 -type f -exec sh -c 'res=`echo '{}' | /usr/lib/rpm/find-requires`; [ -n "$res" ] && (echo;echo file '{}'; echo $res)' \;
Gentoo Linux tiene un lddtree.sh http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-projects/pax-utils/lddtree.sh?revision=1.22&content-type=text%2Fplain
Puede que le resulte útil.
- 1. cómo vincular la biblioteca compartida con otra biblioteca compartida en Linux?
- 2. Linking boost a la biblioteca compartida con CMake en Linux
- 3. Biblioteca compartida dinámica de C++ en Linux
- 4. Uso de la biblioteca compartida en Gyp en node-sqlite3
- 5. Cómo inicializar una biblioteca compartida en Linux
- 6. Programando VHDL en Linux?
- 7. ctypes no encontrar símbolos en la biblioteca compartida creada usando la configuración para crear una librería compartida en Linux CMake
- 8. Falta la biblioteca compartida en Android.
- 9. enlace estático de la función de biblioteca compartida en gcc
- 10. Encontrar la dirección de carga de una biblioteca compartida en Linux
- 11. Exportación explícita de funciones de biblioteca compartida en Linux
- 12. Programando la aplicación P2P
- 13. incluye fácilmente los encabezados de la dependencia de la biblioteca en cmake
- 14. Descubrimiento de la dependencia de biblioteca dinámica en Mac OS y Linux
- 15. Borrado de la memoria compartida con ipcrm en Linux
- 16. ¿Cómo veo la lista de funciones que está exportando una biblioteca compartida de Linux?
- 17. Variable global compartida en la biblioteca estática de C++
- 18. gcc: habilitar los símbolos de depuración en la biblioteca compartida
- 19. Uso de la inyección de dependencia en una biblioteca
- 20. Biblioteca de pantalla compartida
- 21. ¿Cómo compartir variables globales en una biblioteca compartida (.so) en instancias del mismo proceso que utilizan la biblioteca compartida en Linux?
- 22. Biblioteca de clases portátil para la clase compartida [DataContract]
- 23. Listar toda la información de la sesión
- 24. ¿Compila la biblioteca de plantillas solo de encabezado en una biblioteca compartida?
- 25. edificio y la vinculación de una biblioteca compartida
- 26. Eliminar toda la memoria compartida y los semáforos en Linux
- 27. proyecto nativa de Android que hacen referencia a la biblioteca compartida de C++ proyecto de biblioteca
- 28. Programando mediante la carga de Django
- 29. Programando la ubicación del simulador de iphone
- 30. Biblioteca compartida en Go?
sistema ("ldd myfile");? –
solo una respuesta genérica antes de que llegue una real: siempre puedes verificar el origen del programa (en este caso 'ldd') para ver qué hace. –