Qt学习之路【5】:静态Qt库下SQLite数据库无法加载驱动(QSQLITE driver not loaded)

使用的Qt库:Qt4.8.6

交叉编译工具链:arm-linux-gcc(4.3.6)

这个问题纠结了好久。刚开始我使用的是Qt的动态库,没有出现这个问题。现在使用的是Qt的静态库出现了这个问题:QSqlDatabase: QSQLITE driver not loaded。

在网上搜索了好久,也尝试了很多的办法,但是没能够解决问题。但是昨天看到Qt4.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
  1. #include   
  2. #include   
  3. Q_IMPORT_PLUGIN(qsqlite)  
  4. int main(int argc, char *argv[])  
  5. { QApplication app(argc, argv);   
  6. ...   
  7. return app.exec();  
  8. }  



并且在相应的.pro文件中使用QTPLUGIN添加插件的名字。

[cpp]  view plain copy
  1. QTPLUGIN     += qsqlite  
但是,首先你配置静态Qt库时关于数据库的参数应该是-plugin-sql-sqlite。

你可能感兴趣的:(Qt学习)