我在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(显然是正确的,因为它编译时没有警告或错误,并且看起来运行正常),因为当它开始运行时它就是目标目录狂?
答案 0 :(得分:1)
怀疑它(足够好,我可以继续):
我正在尝试部署的Qt应用程序位于〜/ Desktop / temp中。如果我在运行macdeployqt之前将当前目录设置为〜/ Desktop或〜/ Desktop / temp,它将按预期运行。
如果我从我的主目录〜或者〜/ Documents中运行它,macdeployqt会尝试在/ Applications,/ opt和/或与应用程序无关的其他目录中找到它找到的所有内容。
将cwd设置为大多数其他路径,包括〜/ Downloads,/ Applications,〜/ Documents等子目录也似乎有效;它只是从〜和〜/ Documents运行macdeployqt导致问题。
没有正确解释为什么发生这种情况,但只是警告,以防其他人看到这种奇怪的行为:尝试在运行macdeployqt之前更改到应用的位置。强>