【问题标题】:macdeployqt on homebrew installed frameworksmacdeployqt 在 homebrew 安装的框架上
【发布时间】:2011-02-10 11:16:40
【问题描述】:

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

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

提前致谢!

【问题讨论】:

  • 我的 Qt 框架库都归我的本地用户和组所有。我建议您将其更改为相同并完成它,因为我从来没有遇到过任何问题。
  • @Merlin069,我也遇到了同样的问题,你找到答案了吗?
  • 如果您的应用程序依赖于自制软件,并且它安装了 qt,您为什么要担心将依赖项复制到您的 .app 中?他们不应该首先通过自制软件安装来解决吗?

标签: qt macos deployment bundle homebrew


【解决方案1】:

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

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

这是我用于我的一个应用程序的 [a sn-p of] 脚本:

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

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

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

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

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

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

【讨论】:

猜你喜欢
  • 2023-03-08
  • 2013-12-21
  • 1970-01-01
  • 2016-03-03
  • 1970-01-01
  • 1970-01-01
  • 2017-11-16
  • 1970-01-01
  • 2022-07-12
相关资源
最近更新 更多