Ubuntu中Qt5.3连接MySql无法加载驱动问题解决

来源:互联网 发布:比较好的c语言论坛 编辑:程序博客网 时间:2024/05/19 07:09

首先说明,我的Qt安装目录为默认安装,在/opt下,在/opt/Qt5.3.2/5.3/gcc/plugins/sqldirvers中的libqsqlmysql.so文件为Qt自带,编译时会报错,所以应该编译生成该文件,并将其覆盖。以下为生成该文件步骤:

1.首先进行Qt mysql驱动所在的源码文件夹,使用命令如下:

cd /opt/Qt5.3.2/5.3/Src/qtbase/src/plugins/sqldrivers/mysql
2.此时该文件里有三个文件,使用qmake命令生成MakeFile。
此时qmake需管理员权限,如果qmake版本不匹配,则找到qmake文件所在处,使用如下命令:
/opt/Qt5.3.2/5.3/gcc/bin/qmake
3.使用make命令生成so驱动文件。
如果提示找不到mysql.h,则没有安装包libmysqlclient16-dev。
使用命令sudo apt-get install libmysqlclient16-dev安装,则生成so成功。
4.在生成文件中最后一行显示为
mv -f libqsqlmysql.so ../../../../plugins/sqldrivers/
移动到../../../../plugins/sqldrivers/目录下,将其中的so文件拷贝到/opt/Qt5.3.2/5.3/gcc/plugins/sqldirvers中。
此时使用demo程序验证数据库是否正确连接。验证代码如下:
#include "mainwindow.h"#include "ui_mainwindow.h"#include  <qdebug.h>#include  <QSqlDatabase>MainWindow::MainWindow(QWidget *parent) :    QMainWindow(parent),    ui(new Ui::MainWindow){    ui->setupUi(this);    qDebug() << QCoreApplication::libraryPaths();    QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");    db.setHostName("localhost");    db.setDatabaseName("mysql_test");    db.setUserName("root");    db.setPassword("qwer1234");    if(!db.open()){        qDebug()<<"Unable to open database";    }else{        qDebug()<<"Database connection established";    }}MainWindow::~MainWindow(){    delete ui;}
记得在pro文件中添加QT       +=sql


0 0
原创粉丝点击