私はソースからqt5を構築しています。MacOSでqtバイナリをコピーして貼り付ける最も簡単な方法は何ですか?qtフレームワークのいずれかでotoolを実行すると、すべての依存関係が絶対パスを使用していることがわかります。
bash-3.2$ otool -L QtWidgets
QtWidgets:
/Users/../Qt/qt5/qtbase/lib/QtWidgets.framework/Versions/5/QtWidgets (compatibility version 5.1.0, current version 5.1.1)
/Users/../Qt/qt5/qtbase/lib/QtGui.framework/Versions/5/QtGui (compatibility version 5.1.0, current version 5.1.1)
/Users/../Qt/qt5/qtbase/lib/QtCore.framework/Versions/5/QtCore (compatibility version 5.1.0, current version 5.1.1)
/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 155.0.0)
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 19.0.0)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 65.1.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 744.18.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 945.16.0)
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 45.0.0)
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1187.37.0)
qtバイナリをコピーし、そのコピーに対してアプリケーションをリンクすると、機能しますが、一部の依存フレームワークは古い場所から取得されます。バイナリを別のマシンに移動しようとすると、事態はさらに悪化します。install_name_toolを使用して問題を修正できることは知っていますが、エラーが発生しやすい手作業がたくさんあります。その中で私を助けることができるスクリプトがあるかどうか疑問に思いますか?
インターネットでの長い検索の後。私がいることを発見したQtのインストーラFrameworkはマックOSXの下で移転Qtのバイナリにパッチを適用するために必要なコードを持っています。そのコードを実行するのに小さな問題がありました。それはC ++で書かれていて、Qt5.1を使用している間はQt4に依存するため、コンパイルはそれほど簡単ではありませんでした。幸い、すべての操作はコマンドラインから利用できることがわかりました。このコマンドを使用するには、Qtインストーラーフレームワークで作成されたインストーラー(Mac OSX用のQtバイナリインストーラーで十分です)が必要であり、以下のコマンドを使用します。
./qt-mac-opensource-5.1.0-clang-offline.app/Contents/MacOS/qt-mac-opensource-5.1.0-clang-offline --runoperation "QtPatch" "mac"
"/Path/to/Qt/binaries/which/need/to/be/patched" "qt5"
========================================
Operation was successfully performed.
「qmakeはプログラムではありません」などのエラーメッセージが表示された場合は、qmakeをchmodしてみてください。
chmod 777 qmake
注:これは、すべてのQtIFWインストーラーで機能します。遊んQtIFWの構築済みバージョン
OK、それだけです、それは私がこれまでに見つけた最も簡単な方法です。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加