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

本文详细介绍了如何解决Qt环境下的MySQL驱动编译问题,包括配置路径、生成MakeFile、编译生成so文件,以及验证数据库连接。通过安装libmysqlclient16-dev依赖包来解决缺少mysql.h的问题,确保了Qt应用程序能够正常访问和操作MySQL数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值