64位Arm处理器 Lubuntu上编译Qt MySQL驱动
1.安装MySQL
sudo apt-get install libmysqlclient-dev
如果安装失败,尝试更新下源
sudo apt-get update
安装mysql的目的是编译的过程中会用的mysql的库和头文件
2.Qt源码下载,地址如下
http://download.qt.io/archive/qt/5.2/5.2.0/single/
3.编译
由于我的Qt已经安装完成,但是没有mysql驱动,所以单独编译mysql驱动即可。
mysql驱动在Qt源码中的位置如下
qt-everywhere-opensource-src-5.2.0/qtbase/src/plugins/s
qldrivers/mysql
- 生成Makefile文件
qmake -o Makefile "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient" mysql.pro
报错找不到arm-linux-gnueabi-g++,这是因为实际使用的是64的g++
- 直接修改Makefile文件
把文件中几处g++都修改掉
修改后保存直接make
- 执行make命令后生成了驱动文件
生成文件所在路径
只需要把文件放在安装的Qt库文件路径下就可以了,我的文件路径为
/usr/local/Qt5/plugins/sqldrivers/
4.编译好的驱动下载地址
https://download.csdn.net/download/maowendi/10731090
5.测试例程下载
https://download.csdn.net/download/maowendi/10730150
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtSql>
#include <QSqlDatabase>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
qDebug() << "Available drivers:";
QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver, drivers)
qDebug() << "\t "<< driver;
qDebug() << "End";
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setPort(3306);
db.setHostName("172.20.149.212"); //数据库IP
db.setDatabaseName("school"); //数据库名
db.setUserName("root"); //数据库用户名
db.setPassword("12345678"); //密码
if(!db.open()){
qDebug()<<db.lastError();
}
else{
qDebug() << "\nConnected " << "OK";
}
QSqlQuery query;
query.exec("select * from student");
while(query.next()){
QString name = query.value(0).toString();
QString id = query.value(1).toString();
QString age = query.value(2).toString();
QString grade = query.value(3).toString();
QString score = query.value(4).toString();
qDebug()<<"name:"<<name<<"ID:"<<id<<"age:"<<age<<"grade:"<<grade<<"score:"<<score;
}
}
MainWindow::~MainWindow()
{
delete ui;
}
运行效果如下