Qt学習の道【5】:静的Qtライブラリ下のSQLiteデータベースはドライバをロードできません(QSQLITE driver not loaded)
998 ワード
使用するQtライブラリ:Qt 4.8.6
クロスコンパイルツールチェーン:arm-linux-gcc(4.3.6)
この問題は長い間悩んでいた.最初はQtのダイナミックライブラリを使っていましたが、この問題は発生しませんでした.Qtの静的ライブラリでこの問題が発生しました:QSqlDatabase:QSQLITE driver not loaded.
ネットで長い間検索して、いろいろな方法を試しましたが、問題を解決することができませんでした.しかし、昨日Qt 4.8の公式ドキュメントを見たとき、解決策を見つけて、リンクを貼りました.
http://doc.qt.io/qt-4.8/plugins-howto.html
http://doc.qt.io/qt-4.8/qtplugin.html#Q_IMPORT_PLUGIN
にあるhttp://doc.qt.io/qt-4.8/plugins-howto.htmlページの下には、静的プラグイン(static plugins)というセクションがあります.プラグインの静的リンクを作成するには、 Q_IMPORT_PLUGIN()プラグインの名前を含めて、Q_IMPORT_PLUGIN()はヘッダファイル#includeを使用する必要があります
[cpp] view plain copy
#include
#include
Q_IMPORT_PLUGIN(qsqlite)
int main(int argc, char *argv[])
{ QApplication app(argc, argv);
...
return app.exec();
}
また、対応する.proファイルにQTPLUGINを使用してプラグインの名前を追加します.
[cpp] view plain copy
QTPLUGIN += qsqlite
ただし、まず静的Qtライブラリを構成するときのデータベースに関するパラメータは-plugin-sql-sqliteである必要があります.
クロスコンパイルツールチェーン:arm-linux-gcc(4.3.6)
この問題は長い間悩んでいた.最初はQtのダイナミックライブラリを使っていましたが、この問題は発生しませんでした.Qtの静的ライブラリでこの問題が発生しました:QSqlDatabase:QSQLITE driver not loaded.
ネットで長い間検索して、いろいろな方法を試しましたが、問題を解決することができませんでした.しかし、昨日Qt 4.8の公式ドキュメントを見たとき、解決策を見つけて、リンクを貼りました.
http://doc.qt.io/qt-4.8/plugins-howto.html
http://doc.qt.io/qt-4.8/qtplugin.html#Q_IMPORT_PLUGIN
にあるhttp://doc.qt.io/qt-4.8/plugins-howto.htmlページの下には、静的プラグイン(static plugins)というセクションがあります.プラグインの静的リンクを作成するには、 Q_IMPORT_PLUGIN()プラグインの名前を含めて、Q_IMPORT_PLUGIN()はヘッダファイル#includeを使用する必要があります
[cpp] view plain copy
#include
#include
Q_IMPORT_PLUGIN(qsqlite)
int main(int argc, char *argv[])
{ QApplication app(argc, argv);
...
return app.exec();
}
また、対応する.proファイルにQTPLUGINを使用してプラグインの名前を追加します.
[cpp] view plain copy
QTPLUGIN += qsqlite
ただし、まず静的Qtライブラリを構成するときのデータベースに関するパラメータは-plugin-sql-sqliteである必要があります.