2013-11-28 4 views
2

Я хочу опубликовать версию моего проекта Qt. Я использую Qt 5.2.0 и OSX 10.9. Пока у меня есть файл приложения, но он все еще имеет некоторые зависимости, и вы не можете его выполнить, если только с пользователем nik.Qt mac release misses frameworks

Когда я исполняю otool -L MyApp.app/Contents/MacOS/MyApp Я получаю обратно:

/Users/nik/Qt5.2.0/5.2.0-beta1/clang_64/lib/QtWidgets.framework/Versions/5/QtWidgets (compatibility version 5.2.0, current version 5.2.0) 
/Users/nik/Qt5.2.0/5.2.0-beta1/clang_64/lib/QtGui.framework/Versions/5/QtGui (compatibility version 5.2.0, current version 5.2.0) 
/Users/nik/Qt5.2.0/5.2.0-beta1/clang_64/lib/QtCore.framework/Versions/5/QtCore (compatibility version 5.2.0, current version 5.2.0) 
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1056.0.0) 
/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0) 
/System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0) 
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 60.0.0) 
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1) 

Как я могу включить эту зависимость в моих сборках? Материал под /System/ и /usr/ должен быть доступен на всех маках, правильно? Поэтому мне нужно включить только те Qt Framework.

ответ

3

Вам необходимо скопировать фреймворки в свой комплект приложений и изменить ссылки на рамки Qt. OSX имеет средство разработки, называемое install_name_tool, которое позволяет вручную изменять ссылки.

К счастью, Qt предоставляет инструмент командной строки macdeployqt, который скопирует необходимые рамки Qt и изменит ссылки для вас.

Вы можете прочитать об этом в документах Qt для deploying a Qt application for OSX. Это очень просто использовать. Предположим, что ваш путь установки включает инструменты Qt просто называют это от пути к приложению: -

macdeployqt MyApp.app 

Если вы используете другие, не-Qt рамок, вам придется вручную скопировать их и использовать для install_name_tool те.

+0

У меня нет 'macdeployqt'. У меня также нет переменной окружения '$ QTDIR'. Это странно. Как установить эту переменную или выполнить команду? – Niklas

+0

Если у вас установлен Qt, у вас будет macdeployqt. Он находится в папке в Qt-установке под названием «bin». Если у вас его нет на вашем пути, вы можете поместить полный путь к исполняемому файлу. Mine находится в Qt5.1.1/5.1.1/clang_64/bin – TheDarkKnight

+0

Это супер странно, я добавил '$ QTDIR' с командой export, и он все еще не распознает macdeployqt. В конце концов, он работал с абсолютным путем. Большое спасибо! Ты спас свой день. – Niklas

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