我正在尝试使用macdeployqt部署一个应用程序。所有的Qt框架都被正确地复制到应用程序包中。我遇到的问题是macdeployqt对复制的框架没有写权限,这些框架最初驻留在/usr/local/lib中。这是因为我使用自制软件安装了qt,这似乎使安装所有内容都是只读的。我的问题是,是否有更好的方法来解决这个问题,而不是手动更改/usr/local/lib中qt库的所有权限,以便我可以在qt .pro项目中使用macdeployqt。(我不想手动使用macdeployqt和sudo之类的东西)
我问这个问题的原因是因为我在项目中使用了很多第三方库(它们会被复制,等等)。我需要经常通过homebrew更新,因此必须在它们上重做权限更改。
提前感谢!
发布于 2014-09-18 13:57:10
以防有人发现这篇老帖子在寻找关于macdeployqt的信息:
在.pro文件中使用脚本执行macdeployqt,而不是编写macdeployqt命令的脚本。这将允许您动态更改文件的权限。
以下是我在其中一个应用程序中使用的脚本片段:
https://bugreports.qt-project.org/browse/QTBUG-23268
如果您使用的是Windows,并且没有bash,则可以使用perl或python。上面提到的脚本动态地修改文件以解决bug -您可以在此处放置任何您想要的内容,包括更改文件的权限。
使用脚本还意味着您可以灵活地在以后添加命令来执行代码签名、打包或任何其他需要的操作。
Qt .pro“脚本语言”实际上在幕后生成Makefile命令,如果您想要完成与路径和文件集相关的部署任务,它可能会相当晦涩难懂。
此外,您还需要创建一个额外的目标或将其包含在您的构建目标中-无论哪种方式,构建过程都会变得更加复杂且更容易出错。
免责声明:作为诺基亚/Trolltech的高级工程师,我在Qt上工作了8年,还使用Qt发布了一个商业跨平台应用程序。
https://stackoverflow.com/questions/4956376
复制相似问题