Macdeployqt не работает

Я установил последнюю версию Qt (5.1), и когда я пытаюсь развернуть свое приложение на Mac с помощью инструмента macdeployqt, приложение по-прежнему не работает на других компьютерах Mac. Он полностью работает на моем Mac и не указывает на какие-либо ошибки. После исследований я нашел это и думаю, что это моя проблема: ">Qt 5.1 и Mac: ошибка, из-за которой macdeployqt не работает должным образом и https://bugreports.qt-project.org/browse/QTBUG-14699 Но объяснение слишком техническое для меня (+ английский не мой родной язык), я совсем новичок, можете ли вы объяснить, что у меня есть сделать, чтобы просто заставить мое приложение работать на Mac? Шаг за шагом ? Он отлично работает в Windows (со стандартными dll).

Большое спасибо, я думаю, это поможет многим новичкам, которые сталкиваются с той же проблемой.


person Pomologue    schedule 30.07.2013    source источник
comment
Вы сами даете ответ. прочитайте свой первый раздел ссылки UPDATE, HOW TO DEPLOY: и следуйте ему. В общем: 1. Исправьте двойную косую черту. 2. Скомпилируйте свой собственный macdeployqt. 3. вызовите macdeployqt с заданным каталогом qml.   -  person Sebastian Lange    schedule 31.07.2013


Ответы (1)


В вашем распоряжении 3 инструмента для развертывания Qt для OS X (MacOS).

  1. macdeployqt: Этот инструмент собирает все библиотеки Qt, которые ваше приложение объявляет необходимыми в своем проекте, добавляет их в пакет приложений и обновляет их пути, чтобы ваше приложение знало, где их найти.

  2. otool: сложный инструмент для проверки содержимого двоичных файлов, но в этом случае, используемый с аргументом -L, отобразит пути ко всем библиотекам, на которые будет ссылаться ваше приложение. Это пути, по которым он будет искать эти библиотеки.

  3. install_name_tool: Поскольку macdeployqt обрабатывает только те библиотеки Qt, которые необходимы вашему приложению, вы можете использовать install_name_tool для обновления путей к любым другим библиотекам, которые требуются вашему приложению. Например, если у вас есть отдельная инфраструктура, отличная от Qt, на которую опирается ваше приложение, вам нужно выполнить шаг пост-компиляции, чтобы скопировать инфраструктуру в комплект приложения, а затем использовать install_name_tool для обновления путей к инфраструктуре.

Если у вас возникли проблемы, убедитесь, что библиотеки/фреймворки были скопированы в правильное место в комплекте приложений, а затем используйте otool -L для проверки путей. Если какие-то из них неверны, используйте инструмент name_install, чтобы исправить их.

Если вы все еще не можете заставить его работать, отредактируйте свой вопрос и добавьте результат использования otool -L.

Обратите внимание: исторически различные версии Qt имели ошибки с утилитой macdeployqt, поэтому, если она не работает должным образом, вы также можете проверьте средство отслеживания ошибок qt.

person TheDarkKnight    schedule 31.07.2013
comment
Спасибо за ваш ответ, но я пытался, и он все еще не работает ... Я просто сделаю приложение Windows доступным, потому что оно действует мне на нервы, это не должно быть сложнее, чем использование инструмента macdeployqt - person Pomologue; 01.08.2013
comment
Это не сложно, как только вы понимаете, что происходит. Опубликуйте вывод запуска otool -L в исполняемом файле. Например: otool -L /Приложения/Калькулятор/Содержание/MacOS/Калькулятор - person TheDarkKnight; 01.08.2013
comment
Здравствуйте, большое спасибо за то, что остаетесь с нами и хотите помочь, это действительно круто и мило. Я разослал приложение многим друзьям с Mac и, наконец, заметил, что проблемы возникают только у тех, у кого работает Mavericks (10.9). После поиска в Google я вижу, что Qt просто еще не поддерживает Mavericks. Это было так просто. - person Pomologue; 02.08.2013
comment
Нет проблем и спасибо за обновление. Я предполагаю, что в ближайшем будущем мне нужно будет протестировать свой собственный код на Mavericks, но я бы подумал об этом больше как о том, что Mavericks не поддерживает Qt, поскольку ОС все еще находится в бета-версии, поэтому там ничего не гарантируется. - person TheDarkKnight; 02.08.2013