6

我正在尝试使用 macdeployqt 部署应用程序。所有 Qt 框架都被正确复制到应用程序包中。我遇到的问题是 macdeployqt 对最初驻留在 /usr/local/lib 中的复制框架没有写权限。这是因为我已经使用自制软件安装了 qt,这似乎使安装所有内容都是只读的。我的问题是是否有更好的方法来解决这个问题,然后手动更改 /usr/local/lib 中 qt 库的所有权限,以便我可以在 qt .pro 项目中使用 macdeployqt。(我不想通过 sudo 等手动使用 macdeployqt)

我问的原因是因为我在项目中使用了许多第三方库(它们被复制好了等),我需要经常通过自制软件更新它们,因此必须重做对它们的权限更改。

提前致谢!

4

1 回答 1

1

以防万一有人发现这篇旧帖子正在寻找有关 macdeployqt 的信息:

使用脚本执行 macdeployqt,而不是在 .pro 文件中编写 macdeployqt 命令的脚本。这将允许您动态更改文件的权限。

这是我用于我的一个应用程序的脚本[片段]:

https://bugreports.qt-project.org/browse/QTBUG-23268

如果您在 Windows 上并且没有 bash,则可以使用 perl 或 python。上面引用的脚本会即时修改文件以解决错误 - 您可以在此处放置您想要的任何内容,包括更改文件的权限。

使用脚本还意味着您可以灵活地在以后添加命令来执行代码签名、打包或其他任何您需要的操作。

Qt .pro“脚本语言”实际上会在后台生成 Makefile 命令,如果您想要完成与路径和文件集相关的部署任务,它可能会非常晦涩难懂。

此外,您还需要创建一个额外的目标或将其包含到您的构建目标中——无论哪种方式,构建过程都会变得更加复杂且更容易出错。

免责声明:我在 Qt 上工作了 8 年,在 Nokia/Trolltech 担任高级工程师,并且还使用 Qt 发布了一个商业跨平台应用程序。

于 2014-09-18T05:57:09.907 回答