Qt Mac OS 应用程序部署缺少框架
Posted
技术标签:
【中文标题】Qt Mac OS 应用程序部署缺少框架【英文标题】:Qt Mac OS Application deployment missing framework 【发布时间】:2013-06-17 14:18:02 【问题描述】:我使用Qt
和macdeployqt
来部署我的C++
应用程序。
它在捆绑应用程序中包含OpenGL and Qt Frameworks
,但错过了其他一些(即:SDL
),如果SDL framework
不存在,该应用程序将无法在其他系统上运行。这是我的专业档案
QT += core
QT += xml
QT += opengl
QT += gui
TARGET = StripTest
CONFIG += console
TEMPLATE = app
#Main app
SOURCES += main.cpp \
StripWindow.cpp \
MainWindow.cpp \
HEADERS += StripWindow.h \
MainWindow.h\
#Graphics
SOURCES += \
../../libs/PhGraphic/SDLMain.cpp \
INCLUDEPATH += ../../libs \
/Library/Frameworks/ \
LIBS += -framework SDL -framework SDL_image -framework SDL_ttf
我也应该编译框架吗?
编辑:如果我在捆绑包上手动复制框架,问题并没有解决。它必须出现在/Library/Frameworks/
【问题讨论】:
我猜macdeployqt不会自动复制其他框架 你知道包含它们的方法吗? 【参考方案1】:macdeployqt 只会将所需的 Qt 框架复制并修复到您的应用程序中。
如果您在应用程序的可执行文件(在包的 Contents/MacOS 文件夹中)运行“otool -L”,您将看到库框架的引用位置。
.pro 文件中列出的 Qt 以外的其他库需要您将它们复制到应用程序包的 Frameworks 文件夹中,然后运行命令 install_name_tool 以更新应用程序引用它们的路径。
我建议您为此创建一个批处理脚本,以便在编译 Qt OSX 应用程序时作为后处理事件运行。
【讨论】:
以上是关于Qt Mac OS 应用程序部署缺少框架的主要内容,如果未能解决你的问题,请参考以下文章