Как мне скомпилировать мое приложение Qt в статическую библиотеку? - PullRequest
1 голос
/ 17 февраля 2012

У меня сложный бэкэнд (и процесс компиляции) для моего основного проекта. Следовательно, я не хочу вводить все дополнительные вещи, которые требуются для сборки Qt Gui для этой системы.

Поэтому я хочу статически скомпилировать Qt GUI, а затем добавить немного -lmygui в мой процесс сборки в конце.

ПРИМЕЧАНИЕ. Это не означает, что я хочу, чтобы все библиотеки Qt создавались статически (это нарушало бы LGPL). По сути, он должен быть таким же, как если бы я статически создавал бэкэнд и связывал его с qt (что будет моим вторым вариантом, но является худшим решением).

Как мне это сделать?

Ответы [ 2 ]

3 голосов
/ 17 февраля 2012

Я собираюсь предположить, что вы используете файлы проекта qmake (.pro) для сборки этой библиотеки. Если вы делаете это таким образом, просто замените раздел TEMPLATE=app файла .pro следующим:

TEMPLATE=lib
CONFIG+=staticlib
0 голосов
/ 17 февраля 2012

просто, вы не можете сделать это. Qt требует больше, чем -mygui. Если вы используете сигналы и слоты в ваших классах, вам также нужно запустить исполняемый файл 'moc', который будет анализировать ваши файлы c ++ и генерировать файлы 'moc_sources.cxx', которые также будут скомпилированы с вашим проектом. нет способа просто ссылаться на qt без запуска moc, и если вы используете файлы * .ui для вашего интерфейса, вам также потребуется запустить uic, который сгенерирует соответствующие источники.

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