Скомпилированный дистрибутив приложения Qt для Windows - PullRequest
1 голос
/ 30 ноября 2010

Мне удалось скомпилировать и запустить мое приложение Qt. Однако, когда я перемещаю файл .exe за пределы его исходного пути, я обнаружил, что мне нужно вручную скопировать библиотеки Qt (например, mingw10.dll, qtcore4.dll). Есть ли динамический способ связать эти библиотеки с моим приложением?

Ответы [ 2 ]

4 голосов
/ 30 ноября 2010

Я думаю, вы имеете в виду, что вы хотите "статически" связать эти библиотеки с вашим приложением.По сути, это означает, что все будет катиться внутри вашего exe-файла, и вам больше не понадобятся эти dll.

Есть преимущества для статического связывания, но есть и недостатки.Вы должны быть абсолютно уверены, что это то, что вы хотите сделать, прежде чем идти по этому пути.

Проверьте эту ссылку, которая объясняет разницу в глубине Динамическое связывание против статического связывания

Что касается вашей конкретной проблемы, если вы уверены, что хотите использовать статическое связывание, вам придется изменить настройки Qt, чтобы они создавались статически.По умолчанию в дистрибутиве Qt используется динамическое связывание.Для этого есть удобное руководство .

В основном, когда вы настраиваете сборку, вы должны запустить "configure -static", чтобы изменить все настройки проекта, чтобы использовать статическое связывание вместо динамического связывания,А затем снова соберите Qt.

Вы также должны проверить свою лицензию Qt.Если вы используете лицензию Qt LGPL и хотите статически ссылаться, вам нужно будет включить все ваши объектные файлы (.o и .obj), как мудро объяснил Михай Лимбэчан в своем комментарии.Если вы купили и оплатили Qt, у вас нет проблем.

2 голосов
/ 30 ноября 2010

Если библиотеки DLL находятся в ПУТИ для приложения, они будут найдены и работают.Таким образом, вы можете добавить, где находятся ваши двоичные файлы / библиотеки Qt, в переменную окружения% PATH%.Если вы собираетесь создать установщик для своего приложения, вам нужно либо упаковать эти библиотеки, чтобы они находились в каталоге bin, либо ожидать, что каждый пользователь установит и, возможно, скомпилирует Qt самостоятельно (подсказка: иди с первым вариантом. :))

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