Qtパブリッシャ
1077 ワード
Windowsで使用しているQtパブリケーションプログラムでは、ダイナミックリンクライブラリの選択に問題が発生します.
QtCreatorを使用する場合、生成されたプログラムをコンパイルするために使用されるリンクライブラリは、実行時にqtが必要なダイナミックライブラリをリンクする責任を負いますが、自分で直接プログラムを実行すると反応しない可能性があります.
コンパイルして実行するプログラムに問題がなければ,直接実行に問題があればリンクライブラリの問題であることを明確にする必要がある.
使用できるシナリオは次のとおりです.ツールを使用してプログラムをロードし、必要なものを確認し、qtバージョンのbinフォルダの下で対応するライブラリファイルをコピーします.全部できないし、中がうるさい. すべての../bin/*.dllはすべてコピーして、すべての/plugins/の下のすべてをコピーして、この2つは1つのテンプレートとして、後でこのテンプレート を使用します.
2つ目の方法を紹介します.まずあなたのプログラムのmain(.)のcppに を加える をコンパイルし、先ほど作成したテンプレートの下にプログラムをコピーします. 必要に応じて*d 4をdllのすべての削除は、各dllに2つあり、d付きの表示はdebugバージョンであり、リリース時には一般的にdバージョンdll は使用されません.プログラムを実行して、dllとpluginsの中の削除を削除して、削除することができるのは必要ではありませんて、削除できないのはあなたのファイルが占有されていることを提示して、これは必要です.これにより、dllが最も簡素で、最も必要であることが保証されます.プラグインにライブラリがなくてもプログラムが実行できる場合がありますが、画像プラグインライブラリなどの出入りがあります.
QtCreatorを使用する場合、生成されたプログラムをコンパイルするために使用されるリンクライブラリは、実行時にqtが必要なダイナミックライブラリをリンクする責任を負いますが、自分で直接プログラムを実行すると反応しない可能性があります.
コンパイルして実行するプログラムに問題がなければ,直接実行に問題があればリンクライブラリの問題であることを明確にする必要がある.
使用できるシナリオは次のとおりです.
2つ目の方法を紹介します.
QString strLibPath(QDir::toNativeSeparators(QApplication::applicationDirPath() ) + QDir::separator() + "plugins");
app.addLibraryPath(strLibPath);//app QApplication