C ++, Qt - Как мне избавиться от зависимостей DLL? - PullRequest
5 голосов
/ 05 июня 2010

Я скомпилировал свое приложение Qt и теперь у меня возникает следующий вопрос - теперь мой построенный проект требует, чтобы QtCore4.dll и QtGui4.dll находились в той же папке, где находится файл .exe. (я построил свой проект, используя MSVS2008 с дополнением Qt)

Q:

Есть ли способ объединить мое окончательное приложение с этими .dll файлами, чтобы они создали один большой .exe -файл? (Я просто не хочу, чтобы в моем выпуске - еще одна куча DLL-файлов)

Спасибо.

Ответы [ 3 ]

9 голосов
/ 05 июня 2010

Вам необходимо построить и ссылку на Qt статически.

Редактировать: вот обновленная ссылка на не менее аналогичной информации .

2 голосов
/ 07 июня 2010

Объедините их в самораспаковывающийся .exe (например, используя 7zip), который извлекает все файлы во временный каталог, запускает программу, а затем удаляет файлы после выхода из программы.

Это будет проще, менее трудоемким и менее юридически ограниченным, чем статическое связывание Qt, как предлагалось ранее.

0 голосов
/ 05 июня 2010

Конечно, вы могли бы статически связать как-нибудь. Но смысл использования DLL должен заключаться в том, чтобы сделать программу меньше (как на диске, так и в памяти, если, конечно, другие приложения используют библиотеки Qt) ... Такие библиотеки DLL должны быть общесистемными, чтобы их могли использовать другие приложения, которым они нужны. По сути, вы должны сказать людям, которые хотят, чтобы ваша программа работала, установить фреймворк Qt.

Развертывание другим способом объяснено здесь , прочитайте часть, относящуюся к статическому связыванию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...