0

我使用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/

4

1 回答 1

1

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

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

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

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

于 2013-06-17T14:38:35.747 回答