1. 程式人生 > >64位Arm Lubuntu上編譯Qt MySQLl驅動

64位Arm Lubuntu上編譯Qt MySQLl驅動

                             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;
}

執行效果如下