我在 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"
似乎它正在尝试将所有内容(即“”)复制到应用程序中,但是当我还有磁盘空间时,我 ^C 退出了它!
起初它没有这样做。然后它这样做了一个星期;然后它停止了;现在它回来了。这是一个分布式开发项目;我正在做 QML 的东西,而其他地方的人正在做 C++。其他人可能在某处更改了导致这种情况发生的配置,但我是唯一一个进行 Mac 部署的人,所以我是唯一看到这一点的人。
macdeployqt 是否有某种配置文件可能会被触发?还是更可能是与 C++ 对象 MessageBoxUI 相关的问题,它定义了几个 Q_ENUM(显然是正确的,因为它编译时没有警告或错误,并且似乎运行正常),因为这是它开始发疯时的目标目录?