0

と を使用QtmacdeployqtてアプリをデプロイしC++ます。

OpenGL and Qt Frameworksバンドルアプリに含まれていますが、他のいくつかが欠落しており(つまり: SDL)、アプリが存在しない場合、他のシステムではアプリが動作しませんSDL framework。ここに私のプロフィールファイルがあります

QT      += core
QT  += xml
QT  += opengl
QT      += gui

TARGET = StripTest
CONFIG   += console
TEMPLATE = app


#Main app
SOURCES += main.cpp \
    StripWindow.cpp \
    MainWindow.cpp \

HEADERS += StripWindow.h \
    MainWindow.h\

#Graphics
SOURCES += \
    ../../libs/PhGraphic/SDLMain.cpp \

INCLUDEPATH +=  ../../libs \
        /Library/Frameworks/ \

LIBS += -framework SDL -framework SDL_image -framework SDL_ttf

フレームワークもコンパイルする必要がありますか?

編集:バンドルにフレームワークを手動でコピーしても問題は解決しません。に存在する必要があります/Library/Frameworks/

4

1 に答える 1

1

macdeployqt は、必要な Qt フレームワークのみをアプリケーションにコピーして修正します。

アプリケーションの実行可能ファイル (バンドルの Contents/MacOS フォルダー内) で「otool -L」を実行すると、ライブラリ フレームワークがどこから参照されているかがわかります。

.pro ファイルにリストされている Qt のライブラリ以外のライブラリは、アプリケーション バンドルの Frameworks フォルダーにコピーしてから、コマンド install_name_tool を実行して、アプリケーションがそれらを参照する場所のパスを更新する必要があります。

このためのバッチ スクリプトを作成し、Qt OSX アプリをコンパイルするときに後処理イベントとして実行することをお勧めします。

于 2013-06-17T14:38:35.747 に答える