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である必要があります.