Я часто сталкиваюсь с проблемой, когда создаю программу установки для своей программы, в которой я пропускаю некоторые файлы, от которых она зависит.
В Windows:
Я часто пропускаю некоторые DLL, которые установлены в моей системе. Я обычно проверяю свою установку, просто перемещая исполняемый файл в одну только папку, чтобы увидеть, для каких DLL она нужна. Но в любом случае он будет использовать библиотеки DLL, которые он находит в моей папке system32 - эти библиотеки DLL могут быть в системе других пользователей, а может и нет.
Иначе я обнаружил, что открываю EXE в шестнадцатеричном редакторе и ищу шаблон «.DLL». Но DLL могут зависеть и от других DLL.
Есть ли (желательно бесплатный) инструмент, который может сказать мне, какая DLL нужна моей программе? Так что я ничего не пропущу.
В Linux:
В Linux хорошая система управления пакетами. Создание установщика в этих системах означает создание пакета для них. Я могу узнать, какие файлы .so (разделяемый объект) нужны моим программам. Но как определить, какой пакет содержит этот файл .SO, чтобы я мог добавить этот пакет в качестве зависимости при упаковке?