Как заставить QMake сгенерировать правильное .app

StackOverflow https://stackoverflow.com/questions/26904

  •  09-06-2019
  •  | 
  •  

Вопрос

У меня есть большой завершающийся проект на C ++, включающий:

  • 4 приложения
  • более 50 библиотек
  • более 20 сторонних библиотек

Проект использует QMake (часть Qt от Trolltech) для создания производственной версии на Linux, но я немного поиграл с ее созданием на macOS.

Я могу встроиться в macOS с помощью QMake просто отлично, но у меня возникли проблемы с созданием final .app.Для этого необходимо собрать все сторонние фреймворки и динамические библиотеки, все динамические библиотеки проекта и убедиться, что приложение их находит.

Я читал в Интернете об использовании install_name_tool, но мне было интересно, существует ли процесс для его автоматизации.

(Возможно, ответ заключается в использовании XCode, см. Связанный вопрос, но у него будут проблемы с построением uic и moc)

Спасибо

Это было полезно?

Решение

Я уверен, что это могло бы вам очень помочь :

развернуть qt

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

Другие советы

У нас такая же проблема в Last.fm, я посмотрел DeployQt, и от него мало толку, если у вас есть сторонние библиотеки.В конце концов я написал perl-скрипт, который генерирует Makefile, который вы можете использовать для создания .app и / или .dmg.

Я загрузил его сюда: http://www.methylblue.com/detritus/QMake.dmg/

Чтобы использовать его, добавьте это в pro-файл вашего приложения:

 macx*:!macx-xcode:release {
     system( QT=\'$$QT\' QMAKE_LIBDIR_QT=\'$$QMAKE_LIBDIR_QT\' $$ROOT_DIR/common/dist/mac/Makefile.dmg.pl $$DESTDIR $$VERSION $$LIBS > Makefile.dmg )
     QMAKE_EXTRA_INCLUDES += Makefile.dmg   
}

Я уверен, что это еще не все переносимо, но было бы неплохо, если бы кто-то другой воспользовался и посмотрел, так ли это.

По сути, это первый официальный релиз этого кода, поэтому, пожалуйста, присылайте мне отчеты об ошибках, а также улучшения.Спасибо.

Я полностью обошел стороной эту проблему, создав свое Qt-приложение статически на OS X.Хотя для вас это может быть непрактично.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top