MacOSXでの再配置後にQtバイナリにパッチを適用するスクリプト

MaksymB

私はソースから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を使用して問題を修正できることは知っていますが、エラーが発生しやすい手作業がたくさんあります。その中で私を助けることができるスクリプトがあるかどうか疑問に思いますか?

MaksymB

インターネットでの長い検索の後。私がいることを発見した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]

編集
0

コメントを追加

0

関連記事

分類Dev

バイナリファイルにパッチを適用する意味は?

分類Dev

DataFrameの列をインデックス付きのバイナリ行列に再配置するにはどうすればよいですか?

分類Dev

遅い接続で非常に大きなバイナリファイルにパッチを適用する

分類Dev

ラズベリーパイのクロスコンパイル用にQtをセットアップする

分類Dev

バッチスクリプトで複数の値をプログラムにパイプする

分類Dev

屏風用MacOSXにPythonイモリやスナックをインストールする方法

分類Dev

デバイスのすべてのアプリにパターンロックを適用するにはどうすればよいですか?

分類Dev

実行する前にシェルスクリプトにパッチを適用する

分類Dev

1Dマトリックス配列の要素をインプレースで再配置するにはどうすればよいですか?

分類Dev

開始後にバッチスクリプトを終了する

分類Dev

WindowsのバッチスクリプトでFORループを適切に実行する方法

分類Dev

c ++プログラムをコンパイルすると、バイナリがバイナリディレクトリに配置されるようにシェルスクリプトを作成するにはどうすればよいですか。

分類Dev

特定のインデックスに基づいてネストされたリストを再配置する方法

分類Dev

元のリストを変更してリストをインプレースに再配置し、偶数インデックス値を先頭に配置します

分類Dev

Microsoft Wordのクイックスタイルリストでスタイルアイテムを再配置するにはどうすればよいですか?

分類Dev

予期しない結果でリストにパッチを適用するCassandra

分類Dev

Rのスクリプトで関数を再配置するプログラムによる方法

分類Dev

オブジェクトを-fPICでコンパイルする必要がある再配置可能な共有ライブラリのスタックにラベルをプッシュする方法は?

分類Dev

アップストリームメンテナがアクティブでないと思われる場合、パッケージにパッチを適用するにはどうすればよいですか?

分類Dev

JAXRSでは、コンテナリクエストインターセプターを特定のプロバイダーにのみ適用します

分類Dev

バイナリデータをリストにパックおよびアンパックする最速の方法

分類Dev

条件に基づいて後続のパイプライン/ステージ用に大きなバイナリを保存するための.gitlab-ci.ymlキャッシュ/アーティファクト構成

分類Dev

ブートストラップナビゲーションバーの特定のボタンにスタイリングを適用する

分類Dev

Haskellで、制約をパラメトリックニュータイプにアタッチして、それを使用するすべてのクラスインスタンスに自動的に適用されるようにするにはどうすればよいですか?

分類Dev

ASAN:バイナリツリーをリンクリストにフラット化するときのヒープ使用後の解放

分類Dev

デスクトップに適用するモバイルのメディアクエリ

分類Dev

Raspberry Pi 2のクロスコンパイルとリモート展開のためのQt Creatorの適切なセットアップ-間違ったアーキテクチャ用のバイナリの生成

分類Dev

Androidの画像にマルチクリックイベントリスナーをどのように適用しますか

分類Dev

r - ベクトルにバイナリ ベクトル マスクを適用する

Related 関連記事

  1. 1

    バイナリファイルにパッチを適用する意味は?

  2. 2

    DataFrameの列をインデックス付きのバイナリ行列に再配置するにはどうすればよいですか?

  3. 3

    遅い接続で非常に大きなバイナリファイルにパッチを適用する

  4. 4

    ラズベリーパイのクロスコンパイル用にQtをセットアップする

  5. 5

    バッチスクリプトで複数の値をプログラムにパイプする

  6. 6

    屏風用MacOSXにPythonイモリやスナックをインストールする方法

  7. 7

    デバイスのすべてのアプリにパターンロックを適用するにはどうすればよいですか?

  8. 8

    実行する前にシェルスクリプトにパッチを適用する

  9. 9

    1Dマトリックス配列の要素をインプレースで再配置するにはどうすればよいですか?

  10. 10

    開始後にバッチスクリプトを終了する

  11. 11

    WindowsのバッチスクリプトでFORループを適切に実行する方法

  12. 12

    c ++プログラムをコンパイルすると、バイナリがバイナリディレクトリに配置されるようにシェルスクリプトを作成するにはどうすればよいですか。

  13. 13

    特定のインデックスに基づいてネストされたリストを再配置する方法

  14. 14

    元のリストを変更してリストをインプレースに再配置し、偶数インデックス値を先頭に配置します

  15. 15

    Microsoft Wordのクイックスタイルリストでスタイルアイテムを再配置するにはどうすればよいですか?

  16. 16

    予期しない結果でリストにパッチを適用するCassandra

  17. 17

    Rのスクリプトで関数を再配置するプログラムによる方法

  18. 18

    オブジェクトを-fPICでコンパイルする必要がある再配置可能な共有ライブラリのスタックにラベルをプッシュする方法は?

  19. 19

    アップストリームメンテナがアクティブでないと思われる場合、パッケージにパッチを適用するにはどうすればよいですか?

  20. 20

    JAXRSでは、コンテナリクエストインターセプターを特定のプロバイダーにのみ適用します

  21. 21

    バイナリデータをリストにパックおよびアンパックする最速の方法

  22. 22

    条件に基づいて後続のパイプライン/ステージ用に大きなバイナリを保存するための.gitlab-ci.ymlキャッシュ/アーティファクト構成

  23. 23

    ブートストラップナビゲーションバーの特定のボタンにスタイリングを適用する

  24. 24

    Haskellで、制約をパラメトリックニュータイプにアタッチして、それを使用するすべてのクラスインスタンスに自動的に適用されるようにするにはどうすればよいですか?

  25. 25

    ASAN:バイナリツリーをリンクリストにフラット化するときのヒープ使用後の解放

  26. 26

    デスクトップに適用するモバイルのメディアクエリ

  27. 27

    Raspberry Pi 2のクロスコンパイルとリモート展開のためのQt Creatorの適切なセットアップ-間違ったアーキテクチャ用のバイナリの生成

  28. 28

    Androidの画像にマルチクリックイベントリスナーをどのように適用しますか

  29. 29

    r - ベクトルにバイナリ ベクトル マスクを適用する

ホットタグ

アーカイブ