Qt Mac OS应用程序部署缺少框架

时间:2013-06-17 14:18:03

标签: macos qt deployment

我使用Qtmacdeployqt部署我的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/

1 个答案:

答案 0 :(得分:1)

macdeployqt只会将所需的Qt框架复制并修复到您的应用程序。

如果在应用程序的可执行文件上运行“otool -L”(在软件包的Contents / MacOS文件夹中),您将看到库框架的引用位置。

.pro文件中列出的Qt以外的其他库需要您将它们复制到应用程序包的Frameworks文件夹中,然后运行命令install_name_tool来更新应用程序引用它们的路径。 / p>

我建议你为此创建一个批处理脚本,在编译Qt OSX应用程序时作为后处理事件运行。