2

macdeployqt を使用して Qt アプリを Mac OS X 用にパッケージ化する際に問題が発生しています。

私の Mac では、Qt5 が ~/Qt5.1.0/5.1.0/clang_64 にインストールされています (これは bin/ および lib/ フォルダーが存在する場所です)

~/Documents/QtProjects/renamer/ に「renamer」という Qt アプリケーションがあります。

Qt Creator を使用して、~/Documents/QtProjects/build-renamer-Desktop_Qt_5_1_0_clang_64bit-Release でアプリケーションのリリース バージョンをビルドしました。だから私が最初にしたことはotool、私のアプリケーションで実行することでした:

$ cd ~/Documents/QtProjects/build-renamer-Desktop_Qt_5_1_0_clang_64bit-Release
$ otool -L renamer.app/Contents/MacOS/renamer
renamer.app/Contents/MacOS/renamer:
    /Users/paul/Qt5.1.0//5.1.0/clang_64/lib/QtWidgets.framework/Versions/5/QtWidgets (compatibility version 5.1.0, current version 5.1.0)
    /Users/paul/Qt5.1.0//5.1.0/clang_64/lib/QtGui.framework/Versions/5/QtGui (compatibility version 5.1.0, current version 5.1.0)
    /Users/paul/Qt5.1.0//5.1.0/clang_64/lib/QtCore.framework/Versions/5/QtCore (compatibility version 5.1.0, current version 5.1.0)
    /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/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

次を使用して、壊れたパスを手動で修正しましたinstall_name_tool

$ cd ~/Documents/QtProjects/build-renamer-Desktop_Qt_5_1_0_clang_64bit-Release
$ install_name_tool -change /Users/paul/Qt5.1.0//5.1.0/clang_64/lib/QtWidgets.framework/Versions/5/QtWidgets /Users/paul/Qt5.1.0/5.1.0/clang_64/lib/QtWidgets.framework/Versions/5/QtWidgets renamer.app/Contents/MacOS/renamer
$ install_name_tool -change /Users/paul/Qt5.1.0//5.1.0/clang_64/lib/QtGui.framework/Versions/5/QtGui /Users/paul/Qt5.1.0/5.1.0/clang_64/lib/QtGui.framework/Versions/5/QtGui renamer.app/Contents/MacOS/renamer
$ install_name_tool -change /Users/paul/Qt5.1.0//5.1.0/clang_64/lib/QtCore.framework/Versions/5/QtCore  /Users/paul/Qt5.1.0/5.1.0/clang_64/lib/QtCore.framework/Versions/5/QtCore renamer.app/Contents/MacOS/renamer
$ otool -L renamer.app/Contents/MacOS/renamer
renamer.app/Contents/MacOS/renamer:
    /Users/paul/Qt5.1.0/5.1.0/clang_64/lib/QtWidgets.framework/Versions/5/QtWidgets (compatibility version 5.1.0, current version 5.1.0)
    /Users/paul/Qt5.1.0/5.1.0/clang_64/lib/QtGui.framework/Versions/5/QtGui (compatibility version 5.1.0, current version 5.1.0)
    /Users/paul/Qt5.1.0/5.1.0/clang_64/lib/QtCore.framework/Versions/5/QtCore (compatibility version 5.1.0, current version 5.1.0)
    /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/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

macdeployqt/bin を PATH に追加し、プロジェクト ディレクトリから呼び出しました。

$ cd ~/Documents/QtProjects/build-renamer-Desktop_Qt_5_1_0_clang_64bit-Release
$ sudo macdeployqt renamer.app
$ otool -L renamer.app/Contents/MacOS/renamer
renamer.app/Contents/MacOS/renamer:
    @executable_path/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets (compatibility version 5.1.0, current version 5.1.0)
    @executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui (compatibility version 5.1.0, current version 5.1.0)
    @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore (compatibility version 5.1.0, current version 5.1.0)
    /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/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

ただし、インストールされている Qt ライブラリの名前を変更/削除してアプリケーションを実行すると、アプリ バンドル内に Qt ライブラリが見つからないことを示すエラーが表示されます。助言がありますか?

4

0 に答える 0