欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

linux下 qt5 链接Mysql

程序员文章站 2022-06-04 13:35:43
...

操作系统:opensuse13.1 32位

数据库:MariaDB5.5.33

QT:5.1.1

qt安装包:qt-linux-opensource-5.1.1-x86-offline.run


因为是学习,所以安装了全部组件,包括源码和样例。

以普通用户身份安装的,所以安装文件在自己的home目录里面。

<1>准备阶段

 首先要安装,MariaDB客户端的开发库mysql-devel。

 opensuse13.1 下面的安装包是:libmysqlclient-devel和libmysqlclient18

<2>安装阶段

(1)然后找到源码包里面的mysql.pro文件,,一般在  (软件安装的目录)/Qt5/5.1.1/Src/qtbase/src/plugins/sqldrivers/mysql 下面。

这是我的具体安装目录,读者可能和我的有差异,具体按照你的安装目录。

linux下 qt5 链接Mysql


进入到此文件夹以后,如果不存在mysql.pro 就先用(你的qmake所在目录)/qmake  -project 生成一个工程。然后执行执行命令

$>(你的qmake所在目录)/qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient_r" mysql.pro 
 生成一个Makefile文件。

下面是我的操作过程:

linux下 qt5 链接Mysql

(2) 编译,安装

直接在Makefile所在的目录下面 执行

$>make

$>make install

编译生成的libqsqlmysql.so 文件会自动安装到 Qt5/5.1.1/gcc/plugins/sqldrivers/下面。

<3>测试阶段

新建一个qt工程dbtest

在dbtest.pro里面添加 QT += sql (qt5 一定要加的)如标记部分。

linux下 qt5 链接Mysql

然后在main.cpp里面添加如下测试代码。

#include "mainwindow.h"
#include <QApplication>
#include<QMessageBox>
#include<QDebug>
#include<QtSql/QSqlDatabase>
#include<QtSql/QSqlDriver>
#include<QtSql/QSqlError>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    qDebug()<<QSqlDatabase::drivers()<<endl; /*列出qt可用的数据库*/

    /*
     *链接mysql数据库
     */
    QSqlDatabase db( QSqlDatabase::addDatabase( "QMYSQL" ) );
    db.setHostName("localhost");
    db.setDatabaseName("test");
    db.setUserName("root");
    db.setPassword("*****");


    if(!db.open())/*测试数据库是否链接成功*/
    {
       QMessageBox::critical(0, QObject::tr("Databse Error"), db.lastError().text());
       qDebug()<<db.lastError()<<endl;    
    }
    else
    {
       qDebug()<<"Ok"<<endl;
    }


}



编译链接 OK!

转载于:https://my.oschina.net/smartlliu/blog/180270