64位Arm Lubuntu上編譯Qt MySQLl驅動
阿新 • • 發佈:2018-11-01
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; }
執行效果如下