Qt5 не может найти плагины платформы Mac OS X
Я пытаюсь развернуть программу Qt на Mac по эту ссылку. Пройдя через otool -L на свой исполняемый файл и все библиотеки, от которых он зависит, который я скопировал в пакет приложений, я получаю эту ошибку в выпуске приложения QtCreator, когда я пытаюсь запустить его.
Это приложение не удалось запустить, поскольку оно не могло найти или загрузить плагин платформы Qt "cocoa".
Повторная установка приложения может решить эту проблему. Программа неожиданно завершилась.
Я попытался скопировать плагины платформы qt libqcocoa.dylib и изменить каталог плагинов в qt.conf, в соответствии с этим, но он все еще не работает.
Также стоит отметить, что я сначала попытался использовать инструмент qt macdeployqt, но он не справляется с этим сообщением, несмотря на то, что я впервые запустил его в исполняемом файле:
ОШИБКА: Не удалось найти бинарный пакет для "MyProgram.app/Contents/MacOS/MyProgram" ОШИБКА: "otool: невозможно открыть файл: (Нет такого файла или каталога)"
ПРЕДУПРЕЖДЕНИЕ:
ПРЕДУПРЕЖДЕНИЕ: Не удалось найти какие-либо внешние рамки Qt для развертывания в "MyProgram.app/Contents/MacOS/MyProgram"
ПРЕДУПРЕЖДЕНИЕ. Возможно, macdeployqt уже использовался в "MyProgram.app/Contents/MacOS/MyProgram" ?
ПРЕДУПРЕЖДЕНИЕ. Если это так, вам нужно будет перестроить "MyProgram.app/Contents/MacOS/MyProgram" , прежде чем повторять попытку. ОШИБКА: Не удалось найти бинарный пакет для "MyProgram.app/Contents/MacOS/MyProgram"
ОШИБКА: ошибка копирования файла из "/Developer/Applications/Qt/plugins/platforms/libqcocoa.dylib"
ОШИБКА: к "MyProgram.app/Contents/MacOS/MyProgram/Contents/PlugIns/platforms/libqcocoa.dylib"
ОШИБКА: ошибка копирования файла из "/Developer/Applications/Qt/plugins/printsupport/libcocoaprintersupport.dylib"
ОШИБКА: к "MyProgram.app/Contents/MacOS/GraphiteMiniEditor/Contents/PlugIns/printsupport/libcocoaprintersupport.dylib"
Ответы
Ответ 1
Re macdeployqt терпит неудачу: похоже, для аргумента macdeployqt вы передаете путь к исполняемому файлу вместо пути к набору. То есть просто передайте... /MyProgram.app вместо.../MyProgram.app/Contents/MacOS/MyProgram.
(Но я также не могу заставить его найти libqcocoa в изолированном приложении. Я могу прибегнуть к связыванию этого статического текста в моем приложении.)
Ответ 2
У меня была эта ошибка с OS X Lion, используя Qt 5.4.2. Когда я установил утилит командной строки Xcode, ошибка исчезла и macdeployqt
работал.
Ответ 3
Чтобы дать Камилю Климеку решение еще больше внимания (он решил проблему для меня):
У меня была такая же проблема, когда я установил QtCreator (Qt 5.x) с автономным установщиком, но, видимо, также имел Qt (4.x), установленный через Homebrew (вероятно, втянутый в зависимость). Компиляция кода с 5.x, а развертывание с 4.x macdeployqt
script не работает.
Итак, убедитесь, что, например:
which macdeployqt
вызывает macdeployqt
из той же версии Qt/пути, которая используется для компиляции кода.