Qt 5.3.1:macdeployqt尝试将所有内容都包含在我的硬盘上;怎么修?

时间:2014-10-15 06:31:17

标签: macos qt qt5 macdeployqt

我在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"

...所有运行正常,直到我开始收到如下信息:

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"

它似乎正在尝试将所有内容(即#34;")复制到应用程序中,但是当我还有剩余磁盘空间时,我会用它来消息!

起初它没有做到这一点;然后就这样做了一个星期;然后停了下来;现在回来了。这是一个分布式开发项目;我正在做QML的事情,其他地方的人都在做C ++。其他人可能正在改变导致这种情况发生的配置,但我是唯一一个进行Mac部署的人,所以我是唯一一个看到这种情况的人。

macdeployqt是否有某种配置文件会被触发?或者它更可能是与C ++对象MessageBoxUI相关的问题,它定义了几个Q_ENUM(显然是正确的,因为它编译时没有警告或错误,并且看起来运行正常),因为当它开始运行时它就是目标目录狂?

1 个答案:

答案 0 :(得分:1)

怀疑它(足够好,我可以继续):

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

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

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

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