Как узнать, от каких файлов зависит моя программа? - PullRequest
2 голосов
/ 16 марта 2011

Я часто сталкиваюсь с проблемой, когда создаю программу установки для своей программы, в которой я пропускаю некоторые файлы, от которых она зависит.

В Windows:

Я часто пропускаю некоторые DLL, которые установлены в моей системе. Я обычно проверяю свою установку, просто перемещая исполняемый файл в одну только папку, чтобы увидеть, для каких DLL она нужна. Но в любом случае он будет использовать библиотеки DLL, которые он находит в моей папке system32 - эти библиотеки DLL могут быть в системе других пользователей, а может и нет.

Иначе я обнаружил, что открываю EXE в шестнадцатеричном редакторе и ищу шаблон «.DLL». Но DLL могут зависеть и от других DLL.

Есть ли (желательно бесплатный) инструмент, который может сказать мне, какая DLL нужна моей программе? Так что я ничего не пропущу.

В Linux:

В Linux хорошая система управления пакетами. Создание установщика в этих системах означает создание пакета для них. Я могу узнать, какие файлы .so (разделяемый объект) нужны моим программам. Но как определить, какой пакет содержит этот файл .SO, чтобы я мог добавить этот пакет в качестве зависимости при упаковке?

1 Ответ

2 голосов
/ 16 марта 2011

В Windows вам нужен инструмент Dependency Walker , который сообщает вам, от каких DLL зависит EXE (или другая DLL).

В Linux см. Разрешение зависимостей в Linux

...