Herramienta de línea de comandos para encontrar dependencias Dll

votos
17

¿Qué herramientas de línea de comandos existen para encontrar recursivamente todas las dependencias de DLL? Probé dumpbin y Dependency Walker (también conocido como Depends.exe) que vienen con Visual Studio, pero dumpbin sólo encuentra el primer nivel de las dependencias, y la salida de Dependency Walker no es muy amigable equipo.

Publicado el 09/12/2008 a las 15:43
fuente por usuario
En otros idiomas...                            


3 respuestas

votos
14

Pruebe la /oc:FILENAMEopción de depende para escribir un archivo de valores separados por comas. Parece que es más fácil de analizar por máquina que el archivo de texto de "forma libre" generado por la opción / ot: NOMBRE DE ARCHIVO /.

Respondida el 09/12/2008 a las 15:51
fuente por usuario

votos
8

Dependency Walker tiene muchas opciones, incluidas las opciones de salida a archivo. Una de ellas es la /oc:<path>que escribe el resultado en un archivo CSV , que otras herramientas pueden analizar fácilmente o incluso importar en una aplicación de hoja de cálculo.

Dependiendo de lo que necesite las dependencias para usted, en realidad puede tener herramientas multiplataforma para hacer esto también, por ejemplo CMake fixup-bundle, que puede copiar todas las dependencias no pertenecientes al sistema detectadas a la ubicación de su destino (biblioteca ejecutable o compartida), incluso en Windows. La documentación no lo explica con claridad, pero lo he usado para ese propósito en un proyecto multiplataforma desde hace un tiempo.

Respondida el 09/12/2008 a las 15:45
fuente por usuario

votos
2

El uso de la /oc:<path>opción, Dependency Walker le da un archivo CSV que se analiza fácilmente. Si también desea que las rutas de acceso a las bibliotecas también es necesario para utilizar la -f 1opción. Es posible que desee hacer esto si tiene que copiar las bibliotecas (por ejemplo, para hacer una versión distribuible de un ejecutable).

Por desgracia, en la salida de depends.exe las rutas de acceso a las bibliotecas se convierten en minúsculas y el nombre del archivo DLL se convierte a mayúsculas. Por ejemplo,

c: \ qtsdk \ escritorio \ qt \ 4.7.4 \ MinGW \ bin \ QTCORE4.DLL

Cuando la biblioteca se encuentra realmente en:

C: \ QtSDK \ Desktop \ Qt \ 4.7.4 \ MinGW \ bin \ QtCore4.dll

No parece ser una manera de conseguir depends.exe reportar los caminos correctamente cuál es la vergüenza.

Respondida el 06/06/2013 a las 04:33
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more