2

Qt に関するこの問題に関するいくつかの回答があることは知っています (このようなQt 5.1.1: Application failed to start because platform plugin "windows" is missing )。Qt 5 を使用していますが、この問題は他のバージョンでも発生しているようです。

受け入れられた答えは私の問題ではありませんでしたが、リンクに従って、プラットフォームディレクトリを実行可能ファイルにコピーするソリューションは正常に機能します。しかし、私はこの解決策は非常に不十分だと思います。なぜなら、この同じディレクトリをあちこちに配布しなければならないからです。プロジェクトでは、作成した各プロジェクトのデバッグ/リリース ブランチにコピーする必要があります。実行中designer.exe私もこの問題を抱えているので、そこにもコピーする必要があります。

プラグイン ディレクトリを QT インストール ディレクトリから PATH に配置しても問題は解決しませんでしたが、その理由はよくわかりません。どうやら、必要なプラグイン DLL をロードするカスタム コードがいくつかあるようです。

QT_HOME変数を設定するなど、これを適切に行うための受け入れ可能な方法がないのではないかと思います。そのため、DLLをあちこちにコピーする必要はありません。

4

2 に答える 2

0

QCoreApplication::addLibraryPath(PATH TO PLUGIN FOLDER) を使用してみてください。

于 2014-04-04T21:33:44.113 に答える
0

一般に、Qt を自分でビルドすることは悪い考えであり、この場合、静的ビルドを行うことさえ保証されていません。この問題を解決するには、いくつかの方法があります。

ドキュメントから:

All Qt programs automatically support the following command line options:
\list

    \li \c{-platform} \e {platformName[:options]}, specifies the
        \l{Qt Platform Abstraction} (QPA) plugin.

        Overridden by the \c QT_QPA_PLATFORM environment variable.
    \li \c{-platformpluginpath} \e path, specifies the path to platform
        plugins.

        Overridden by the \c QT_QPA_PLATFORM_PLUGIN_PATH environment
        variable.

void QCoreApplication::addLibraryPath(const QString & path) [静的]

ライブラリ パス リストの先頭にパスを追加し、最初にライブラリが検索されるようにします。path が空であるか、既にパス リストにある場合、パス リストは変更されません。

デフォルトのパス リストは、プラグインのインストール ディレクトリである単一のエントリで構成されます。プラグインのデフォルトのインストール ディレクトリは INSTALL/plugins です。INSTALL は Qt がインストールされたディレクトリです。

removeLibraryPath()、libraryPaths()、および setLibraryPaths() も参照してください。

あなたの正確な欲求に応じて、これは何らかの方法で解決できます。

于 2014-04-04T22:53:08.573 に答える