我正在使用Qt Creator部署我的Qt应用程序。在Mac上,我想把所需的Qt库包含在.app包中。有没有什么办法可以使用Qt Creator自动完成这个过程?还是需要使用命令行?如果是这样,我该如何操作?
我正在使用Qt Creator部署我的Qt应用程序。在Mac上,我想把所需的Qt库包含在.app包中。有没有什么办法可以使用Qt Creator自动完成这个过程?还是需要使用命令行?如果是这样,我该如何操作?
macdeployqt命令行工具将添加您的Qt项目引用的所有必要的Qt库。
如果您需要其他第三方库,则需要手动复制这些库并使用install_name_tool命令设置它们的路径。
您可以使用otool命令检查应用程序引用的库。例如:-
otool -L MyApplication.app/Contents/MacOS/MyApplication
对于Qt Creator,我倾向于编写一个脚本来添加必要的库并调用macdeployqt,然后在项目中添加一个构建步骤来调用该脚本。
一个只添加Qt库的示例脚本可能如下:
#!/bin/bash
pwd
echo Copying QT libraries...
macdeployqt ./MyApplication.app
你可以简单地运行 macdeployqt foo.app
。Qt Creator 当前并不支持该功能。但是,你可以在 QtCreator 项目设置中注入自定义命令。
目前它还不支持 QML。在 codereview 下有补丁即将推出。请查看以下链接获取详细信息:
https://codereview.qt-project.org/#q,status:open+project:qt/qttools,n,z
注意:macdeployqt 不应用于常规开发和调试!只应使用于部署时。否则,即使你只是因为测试而进行了轻微更改重新编译代码,它也会每次构建时执行。这可能会拖慢该过程,但对于部署来说应该没问题。
在QT6中,我能够完全在QT Creator中完成它:
在项目/构建中,在“make”之后添加自定义构建步骤(可能只想对“release”配置执行此操作):
命令:%{Qt:QT_HOST_PREFIX}/bin/macdeployqt
参数:%{ActiveProject:BuildConfig:Path}/%{ActiveProject:Name}.app - qmldir=%{ActiveProject:NativePath}
工作目录:%{buildDir}
我可以通过将结果的.app文件传输到我的测试机器上进行测试。
install
或类似的目标,并简单地调用make install
。如果应用程序不是最新的,这可以自动构建它。 - Kuba hasn't forgotten Monica