首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt 5.3.1: macdeployqt尝试包含我硬盘上的所有内容;如何修复?

Qt 5.3.1: macdeployqt尝试包含我硬盘上的所有内容;如何修复?
EN

Stack Overflow用户
提问于 2014-10-15 14:31:17
回答 1查看 189关注 0票数 0

我在Mac OS X 10.8和10.9上运行Qt 5.3.1,我试图使用macdeployqt工具将库和插件与我的可执行文件捆绑在一起,但它显然试图包含我硬盘上的所有内容。

我用以下方式调用它:

代码语言:javascript
复制
/Applications/Qt/5.3.1/5.3/clang_64/bin/macdeployqt /Users/adamwilt/Desktop/temp/DesktopPixie.app -verbose=2
-qmldir=/Users/adamwilt/Desktop/temp/DesktopPixie.app/Contents/Resources/qml/DesktopPixie

并获得大量正常的、预期的日志消息,如:

代码语言:javascript
复制
Log: copy: "/Applications/Qt/5.3.1/5.3/clang_64/qml/QtQuick/Controls/Styles/Base/images" "/Users/adamwilt/Desktop/temp/DesktopPixie.app/Contents/Resources/qml/QtQuick/Controls/Styles/Base/images"

...and运行得很好,直到我开始收到如下消息:

代码语言:javascript
复制
Log: copy: "" "/Users/adamwilt/Desktop/temp/DesktopPixie.app/Contents/Resources/qml/MessageBoxUI/Enums"
ERROR: file copy failed from "/do-gst"
ERROR:  to "/Users/adamwilt/Desktop/temp/DesktopPixie.app/Contents/Resources/qml/MessageBoxUI/Enums/do-gst"
ERROR: file copy failed from "/rescuepro.properties"
ERROR:  to "/Users/adamwilt/Desktop/temp/DesktopPixie.app/Contents/Resources/qml/MessageBoxUI/Enums/rescuepro.properties"
ERROR: file copy failed from "/rescuepro34act.lic"

然后有趣的事情就开始了:

代码语言:javascript
复制
Log: copy: "/Applications" "/Users/adamwilt/Desktop/temp/DesktopPixie.app/Contents/Resources/qml/MessageBoxUI/Enums/Applications"
Log:  copied: "/Applications/License.rtf"
Log:  to "/Users/adamwilt/Desktop/temp/DesktopPixie.app/Contents/Resources/qml/MessageBoxUI/Enums/Applications/License.rtf"
Log: copy: "/Applications/0xED-1.0.7.app" "/Users/adamwilt/Desktop/temp/DesktopPixie.app/Contents/Resources/qml/MessageBoxUI/Enums/Applications/0xED-1.0.7.app"

它似乎正在尝试将所有内容(即"")复制到应用程序中,但我在磁盘空间仍然剩余的情况下退出了它!

它一开始没有这样做;然后它这样做了一周;然后它停止了;现在它又回来了。这是一个分布式开发项目;我在做QML,其他地方的人也在做C++。可能是其他人在某个地方改变了配置,导致了这种情况的发生,但我是唯一一个进行Mac部署的人,所以我是唯一一个看到这种情况的人。

是否为macdeployqt提供了某种配置文件,其中可能会触发此操作?或者,这更可能是与C++ object MessageBoxUI有关的问题,它定义了几个Q_ENUMs (显然是正确的,因为它编译时没有警告或错误,并且看起来运行正常),因为当它开始疯狂时,这是目标目录?

EN

回答 1

Stack Overflow用户

发布于 2014-10-16 09:47:06

我把它挂起来了(足够好了,我可以继续讲下去):

我正在尝试部署的Qt应用程序位于~/Desktop/temp中。如果在运行macdeployqt之前将当前目录设置为~/Desktop或~/Desktop/temp,它将按预期运行。

如果我从我的主目录~或~/Documents运行它,macdeployqt会尝试拉入它在/Applications、/opt和/或其他与应用程序无关的目录中找到的所有内容。

将cwd设置为大多数其他路径,包括~/Downloads、/Applications、~/Documents的子目录等似乎也是有效的;只有从~和~/Documents运行macdeployqt才会导致问题。

对于为什么会发生这种情况,没有适当的解释,但只是一个警告,以防其他人看到这种奇怪的行为:在运行macdeployqt之前,尝试更改到应用程序的位置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26375894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档