Как уменьшить размер вывода Qt в зависимости от использования приложения - PullRequest
2 голосов
/ 15 сентября 2010

Я недавно смотрел на Qt, и да, я должен был начать давным-давно ... Но возникла проблема, что готовые или самостоятельно скомпилированные .dll, QtCore4.dll, QtGui4.dll и т. Д. , довольно большие.

Поскольку я должен оставаться в рамках LGPL, существует ли правильный способ связать только то, что мне нужно, с файлами QtCore4.dll и QtGui4.dll, чтобы мое приложение могло его использовать? Было бы неплохо иметь один файл Qt.dll, но не обязательно.

Я уже попробовал несколько вещей: используя их программу configure.exe, чтобы удалить некоторые ненужные функции. Это немного сократилось по сравнению с установкой SDK по умолчанию, но не намного. Я также попытался запустить совершенно новый проект .dll и добавить файлы .cpp вручную, когда они мне нужны. Но VS2008 пожаловался на источник.

Ответы [ 2 ]

0 голосов
/ 28 сентября 2010

Я постараюсь объяснить вам, как это сделать с Qt Creator. Прежде всего, в меню Build убедитесь, что ваша цель сборки установлена ​​в Release. Таким образом, вы сможете использовать только не отладочные файлы .dll, и это уменьшит размер необходимого вам содержимого. Например, QtCore4.dll (без отладки) - 2478 КБ, а QtCored4.dll (без отладки) - 30493 КБ. Это было бы началом.

Другие решения, которые я вижу, следующие:

В файле .pro вашего проекта добавьте следующую строку:

QT -= network xml

Это позволит удалить зависимости от QtNetwork4.dll и QtXml4.dll. Добавьте другие модули, которые вам не нужны, и вы сможете использовать только те модули, которые вам действительно нужны.

Я должен проверить это последнее решение, поскольку я только прочитал его здесь , но еще не проверил его.

Надеюсь, это поможет.

0 голосов
/ 15 сентября 2010

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

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