2013-11-14 3 views
13

Я пытаюсь развернуть программу Qt на Mac согласно this link. Пройдя через otool -L на свой исполняемый файл и все библиотеки, от которых он зависит, который я скопировал в пакет приложений, я получаю эту ошибку в выводе приложения QtCreator, когда я пытаюсь запустить его.Qt5 не может найти плагины платформы Mac OS X

This application failed to start because it could not find or load the Qt platform plugin "cocoa".

Reinstalling the application may fix this problem. The program has unexpectedly finished.

Я попытался скопировать Qt плагины платформы libqcocoa.dylib и изменение каталога плагинов в qt.conf, according to this, но она до сих пор не удается.

Также стоит отметить, я первый пытался использовать macdeployqt инструмент Qt, но он терпит неудачу с этим сообщением, несмотря на то, первый раз, когда я запустить его на исполняемый файл:

ERROR: Could not find bundle binary for "MyProgram.app/Contents/MacOS/MyProgram" ERROR: "otool: can't open file: (No such file or directory)"

WARNING:

WARNING: Could not find any external Qt frameworks to deploy in "MyProgram.app/Contents/MacOS/MyProgram"

WARNING: Perhaps macdeployqt was already used on "MyProgram.app/Contents/MacOS/MyProgram" ?

WARNING: If so, you will need to rebuild "MyProgram.app/Contents/MacOS/MyProgram" before trying again. ERROR: Could not find bundle binary for "MyProgram.app/Contents/MacOS/MyProgram"

ERROR: file copy failed from "/Developer/Applications/Qt/plugins/platforms/libqcocoa.dylib"

ERROR: to "MyProgram.app/Contents/MacOS/MyProgram/Contents/PlugIns/platforms/libqcocoa.dylib"

ERROR: file copy failed from "/Developer/Applications/Qt/plugins/printsupport/libcocoaprintersupport.dylib"

ERROR: to "MyProgram.app/Contents/MacOS/GraphiteMiniEditor/Contents/PlugIns/printsupport/libcocoaprintersupport.dylib"

+0

Когда вы скомпилировали свою программу и имеете комплект приложений, щелкните правой кнопкой мыши на комплекте и выберите «Показать содержимое пакета», вы можете посмотреть, существует ли двоичный файл в «MyProgram.app/Contents/MacOS/ MyProgram «Можете ли вы это подтвердить? – TheDarkKnight

+0

Да, он есть, и это файл, в который я запускал все команды install_name_tool. Я закончил возвращаться к Qt4.8, и теперь он работает. –

+0

Возможно, вы можете попробовать эту измененную версию macdeployqt: https://github.com/MaximAlien/macdeployqt Я нашел, что это действительно не так, чтобы развернуть Qt5 на Mac, эта версия macdeployqt помогла мне в этом. – danielfranca

ответ

2

Re macdeployqt терпит неудачу: кажется, например, для аргумента macdeployqt вы передаете путь к исполняемому файлу вместо пути к набору. То есть просто передайте .../MyProgram.app вместо .../MyProgram.app/Contents/MacOS/MyProgram.

(Но я также не смог получить его найти libqcocoa, в изолированном приложении. Я могу прибегнуть к компоновки, статически в мое приложение.)

+0

macdeployqt требует, чтобы пакет приложений не был доступен для приложения внутри пакета для правильной работы - я недавно развернул 2 разных aps для Mac OS X (используя Qt 5.4.2 и 5.5.1) без каких-либо проблем с помощью этого инструмента. –

0

У меня была эта ошибка с OS X Lion, используя Qt 5.4. 2. Когда я установил утилит командной строки Xcode, ошибка исчезла и работало macdeployqt.

0

с получением раствора Камиля Klimek в еще некоторое внимание (Это решило проблему для меня):

Я была такая же проблема, когда я установил QtCreator (Qt 5.x) с установщиком автономной, но, видимо, также имел Qt (4.x), установленный через Homebrew (вероятно, затянут как зависимость). Компиляция кода с 5.x и его развертывание с помощью скрипта 4.x macdeployqt не работает.

Итак, убедитесь, что например .:

which macdeployqt 

звонки macdeployqt из той же Qt версии/путь, используемый для компиляции кода.

+0

Вызов «пивоваренного списка» и «brew remove qt» + «brew remove qt5», казалось, помог мне (хотя я явно указал на правильный macdeployqt) –

Смежные вопросы