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

Posted

技术标签:

【中文标题】Qt Mac OS 应用程序部署缺少框架【英文标题】:Qt Mac OS Application deployment missing framework 【发布时间】:2013-06-17 14:18:02 【问题描述】:

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

【问题讨论】:

我猜macdeployqt不会自动复制其他框架 你知道包含它们的方法吗? 【参考方案1】:

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

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

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

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

【讨论】:

以上是关于Qt Mac OS 应用程序部署缺少框架的主要内容,如果未能解决你的问题,请参考以下文章

Qt Mac OS 部署 - 您必须提供 Apple ID

Qt for mac os - 将项目部署到应用程序文件

在 Mac OSX 上部署 Qt 应用程序时缺少文件

Qt 5.1rc1 在 mac OS X 上部署,我如何部署一个简单的 QtQuick2 应用程序?

Mac 上的 qmake 缺少 qt-creator

系统中缺少框架,但 Mac/iOS 上的 XCode 中没有