我使用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/
答案 0 :(得分:1)
macdeployqt只会将所需的Qt框架复制并修复到您的应用程序。
如果在应用程序的可执行文件上运行“otool -L”(在软件包的Contents / MacOS文件夹中),您将看到库框架的引用位置。
.pro文件中列出的Qt以外的其他库需要您将它们复制到应用程序包的Frameworks文件夹中,然后运行命令install_name_tool来更新应用程序引用它们的路径。 / p>
我建议你为此创建一个批处理脚本,在编译Qt OSX应用程序时作为后处理事件运行。