【问题标题】:Qt Mac DeploymentQt Mac 部署
【发布时间】:2018-07-24 15:38:36
【问题描述】:

将 QT 框架添加到我的 .app 包中

我正在关注关于部署的 Qt 站点上的文档。 我创建了一个名为 HTTPClient.app 的应用

我在 Contents 下创建了 Framework 文件夹并复制了 crypto++ 和 qscintilla 和 Qt 框架,它看起来像这样:

然后我运行 install_name_tool -id -change

DylibFile=libqscintilla2.11.dylib
install_name_tool -id @executable_path/../Frameworks/$DylibFile  $ProjectName.app/Contents/Frameworks/$DylibFile
install_name_tool -change $DylibFile @executable_path/../Frameworks/$DylibFile $ProjectName.app/Contents/MacOS/$ProjectName

对于crypto++也是如此。我对 Qt 框架做了以下操作

DylibFile=QtCore.framework/Versions/5/QtCore
install_name_tool -id @executable_path/../Frameworks/$DylibFile  $ProjectName.app/Contents/Frameworks/$DylibFile
install_name_tool -change $DylibFile @executable_path/../Frameworks/$DylibFile $ProjectName.app/Contents/MacOS/$ProjectName

DylibFile=QtWidgets.framework/Versions/5/QtWidgets
install_name_tool -id @executable_path/../Frameworks/$DylibFile  $ProjectName.app/Contents/Frameworks/$DylibFile
install_name_tool -change $DylibFile @executable_path/../Frameworks/$DylibFile $ProjectName.app/Contents/MacOS/$ProjectName

DylibFile=QtGui.framework/Versions/5/QtGui
install_name_tool -id @executable_path/../Frameworks/$DylibFile  $ProjectName.app/Contents/Frameworks/$DylibFile
install_name_tool -change $DylibFile @executable_path/../Frameworks/$DylibFile $ProjectName.app/Contents/MacOS/$ProjectName


DylibFile=QtSql.framework/Versions/5/QtSql
install_name_tool -id @executable_path/../Frameworks/$DylibFile  $ProjectName.app/Contents/Frameworks/$DylibFile
install_name_tool -change $DylibFile @executable_path/../Frameworks/$DylibFile $ProjectName.app/Contents/MacOS/$ProjectName

DylibFile=QtNetwork.framework/Versions/5/QtNetwork
install_name_tool -id @executable_path/../Frameworks/$DylibFile  $ProjectName.app/Contents/Frameworks/$DylibFile
install_name_tool -change $DylibFile @executable_path/../Frameworks/$DylibFile $ProjectName.app/Contents/MacOS/$ProjectName

现在当我运行 otool 时,我得到以下信息:

我得到了 crypto 和 qscintilla 路径,但 Qt 框架不应该也遵循相同的模式吗?它仍然指向原始路径

【问题讨论】:

    标签: qt


    【解决方案1】:

    您可以通过使用提供的工具 macdeployqt(位于 Qt 安装的 bin 文件夹中)来节省您担心如何将 install_name_tool 与 Qt 框架一起使用的时间。

    此工具将复制所需的 Qt 库并相应地设置路径。所以,假设你的路径中有 Qt bin 文件夹,你需要做的就是调用这个:-

    macdeployqt HTTPClient.app

    注意它只处理 Qt 框架,所以你仍然必须自己处理其他的。

    【讨论】:

    • 哇,这让我头疼了。谢谢你的信息
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多