0

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 の何らかの構成ファイルはありますか? それとも、いくつかの Q_ENUM を定義する C++ オブジェクト MessageBoxUI に関連する問題である可能性が高くなります (警告やエラーなしでコンパイルされ、適切に実行されているように見えるため、明らかに正しく)。

4

1 に答える 1

1

それを考えました(私が続けることができるのは十分です):

デプロイしようとしている Qt アプリは ~/Desktop/temp にあります。macdeployqt を実行する前に現在のディレクトリを ~/Desktop または ~/Desktop/temp に設定すると、期待どおりに実行されます。

ホーム ディレクトリ ~、または ~/Documents から実行すると、macdeployqt は、/Applications、/opt、および/またはアプリに関連付けられていない他のディレクトリで見つかったすべてのものを取り込もうとします。

~/Downloads、/Applications、~/Documents のサブディレクトリなどを含む他のほとんどのパスに cwd を設定しても機能するようです。問題を引き起こすのは ~ および ~/Documents から macdeployqt を実行しているだけです。

なぜこれが起こっているのかについての適切な説明はありませんが、他の誰かがこの種の奇妙な動作を見た場合の警告です: macdeployqt を実行する前にアプリの場所に変更してみてください.

于 2014-10-16T01:47:05.973 に答える