Командная строка инструмент для поиска зависимостей Dll

голоса
17

Какие инструменты командной строки существуют , чтобы рекурсивно найти все зависимости DLL? Я попытался DUMPBIN и Dependency Walker (ака Depends.exe) , которые приходят с Visual Studio, но DUMPBIN находит только первый уровень зависимостей, а выход Dependency Walker не очень дружественный для компьютера.

Задан 09/12/2008 в 15:43
источник пользователем
На других языках...                            


3 ответов

голоса
14

Попробуйте /oc:FILENAMEвариант зависит, чтобы написать через запятую значения файла. Похоже , что легче разобрать на машине , чем «свободная форма» текстовый файл , порожденном / OT: FILENAME / опцией.

Ответил 09/12/2008 в 15:51
источник пользователем

голоса
8

Dependency Walker имеет много вариантов , включая варианты вывода в-файл. Один из них , /oc:<path>который записывает вывод в CSV файл , который легко разобрано другими инструментами или даже просто импортировать в приложение электронной таблицы.

В зависимости от того, что вам нужны зависимости для вас может на самом деле имеют кросс-платформенные инструменты , чтобы сделать это тоже - например CMake FixUp расслоение , который может скопировать все обнаруженные зависимости несистемных к месту вашей цели (исполняемому или совместно используемым библиотеки), даже на Windows. Документация не ясно объяснить, но я использую его для этой цели на кросс-платформенного проекта некоторое время теперь.

Ответил 09/12/2008 в 15:45
источник пользователем

голоса
2

Используя /oc:<path>опцию, Dependency Walker дает вам файл CSV , который легко разобран. Если вы хотите пути к библиотекам также необходимо использовать -f 1опцию. Вы можете сделать это , если вам нужно скопировать библиотеки (например , чтобы сделать распространяемую версию исполняемого файла).

К сожалению, на выходе из depends.exe путей к библиотекам преобразуются в нижний регистр и имя DLL преобразуется в верхний регистр. Например,

C: \ qtsdk \ Desktop \ Qt \ 4.7.4 \ MinGW \ Bin \ qtcore4.dll

Когда библиотека фактически расположена по адресу:

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

Там, кажется, не быть способ, чтобы получить depends.exe правильно сообщать о пути, который является позором.

Ответил 06/06/2013 в 04:33
источник пользователем

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