您现在的位置:首页 > >

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

发布时间:

首先说明,我的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
#include

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


热文推荐
猜你喜欢
友情链接: