自动在Mac上部署的.app包中包含Qt库

时间:2013-09-13 07:25:14

标签: macos qt qt-creator qt5

我正在使用Qt Creator来部署我的Qt应用程序。在Mac上,我想在.app包中包含所需的Qt库。有没有办法使用Qt Creator自动完成?我应该使用命令行吗?在那种情况下,我该怎么做?

3 个答案:

答案 0 :(得分:14)

macdeployqt命令行工具将添加Qt项目引用的所有必需的Qt库。

如果您需要任何其他第三方库,则需要手动复制这些库并使用 install_name_tool 命令设置它们的路径。

您可以使用otool命令检查应用程序引用的库。例如: -

otool -L MyApplication.app/Contents/MacOS/MyApplication

对于Qt Creator,我倾向于编写一个脚本,添加必要的库并调用macdeployqt,然后在Projects下添加一个调用脚本的构建步骤。

只添加Qt库的示例脚本如下所示: -

#!/bin/bash
pwd
echo Copying QT libraries...
macdeployqt ./MyApplication.app

答案 1 :(得分:5)

您只需运行macdeployqt foo.app即可。 Qt Creator也不支持此功能。但是,您可以在QtCreator项目设置中将自定义命令注入流程。

虽然它不支持QML。代码审查下有补丁即将到来。有关详细信息,请参阅以下链接:

https://codereview.qt-project.org/#q,status:open+project:qt/qttools,n,z

注意:macdeployqt不应该用于通常的开发和调试!它应该仅在部署时使用。否则,即使您只是因为测试的微小更改而重新编译代码,它也会在每次构建时执行。这可能会减慢这个过程,但至于部署,它应该没问题。

答案 2 :(得分:0)

在 QT6 上,我完全可以在 QT Creator 中完成:

在 Projects/Build 中,在“make”之后添加一个自定义构建步骤(可能只想为您的“发布”配置执行此操作):

命令:%{Qt:QT_HOST_PREFIX}/bin/macdeployqt

参数:%{ActiveProject:BuildConfig:Path}/%{ActiveProject:Name}.app - qmldir=%{ActiveProject:NativePath}

工作目录:%{buildDir}

我能够通过将生成的 .app 空投到我的测试机器上来对其进行测试。

screenshot of qt creator custom build step

参考:https://doc.qt.io/qt-6/macos-deployment.html#macdeploy