我在Mac OS X 10.8和10.9上运行Qt 5.3.1,我试图使用macdeployqt工具将库和插件与我的可执行文件捆绑在一起,但它显然试图包含我硬盘上的所有内容。
我用以下方式调用它:
/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并获得大量正常的、预期的日志消息,如:
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运行得很好,直到我开始收到如下消息:
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"然后有趣的事情就开始了:
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 (显然是正确的,因为它编译时没有警告或错误,并且看起来运行正常),因为当它开始疯狂时,这是目标目录?
发布于 2014-10-16 09:47:06
我把它挂起来了(足够好了,我可以继续讲下去):
我正在尝试部署的Qt应用程序位于~/Desktop/temp中。如果在运行macdeployqt之前将当前目录设置为~/Desktop或~/Desktop/temp,它将按预期运行。
如果我从我的主目录~或~/Documents运行它,macdeployqt会尝试拉入它在/Applications、/opt和/或其他与应用程序无关的目录中找到的所有内容。
将cwd设置为大多数其他路径,包括~/Downloads、/Applications、~/Documents的子目录等似乎也是有效的;只有从~和~/Documents运行macdeployqt才会导致问题。
对于为什么会发生这种情况,没有适当的解释,但只是一个警告,以防其他人看到这种奇怪的行为:在运行macdeployqt之前,尝试更改到应用程序的位置。
https://stackoverflow.com/questions/26375894
复制相似问题