【ARM mysql】使用gec6818开发板连接编译并且mysql远程服务器

大致步骤和流程

参考文章:
https://blog.csdn.net/Aa_lihua/article/details/104230081
https://blog.csdn.net/Aa_lihua/article/details/104287614
首先开始我们需要编译一个mysql的源码,此处我使用的就是上面提到的文章中的那位大佬的,然后根据他的流程你应该能编译出一个arm版的mysql库,下面我只讲一些问题。编译好后把lib库上传到开发板中的lib文件夹,然后在根据这位大佬的第二篇文章继续编译qt版本的arm端mysql,在导入到开发板中即可,下面开始说详细流程

1,编译mysql源码libmysql

  1. 首先在官网下载这个源码
    源码链接
    在这里插入图片描述
  2. 编译出libmysql
    首先将下载好的源码解压放到一个目录下面,下面是我解压好的
    在这里插入图片描述
    然后你需要下载一个cmake工具
sudo apt-get install cmake

接着就是配置源码包里的CMakeLists.txt,在开头加入交叉编译工具链的名称,如下所示:

SET(CMAKE_CXX_COMPILER "arm-linux-g++")
SET(CMAKE_C_COMPILER "arm-linux-gcc")

在这里插入图片描述
添加好后输入下面指令对它进行配置

cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=安装路径

配置完后直接输入

make
make install

如果顺利的话你在你刚刚填的安装路径下会出现一个文件夹,下面的lib和include都是我们后面要用到的
在这里插入图片描述
接下来将这个文件夹的lib库中的动态库都上传到开发板的lib文件夹下:
在这里插入图片描述
此时客户端部分已经完成了,可以使用c语言或者c++就能使用了,然后我们如果还需要使用qt作为mysql连接的话请接着看下去

编译qt的mysql驱动

在编译之前请确保你的qt交叉编译工具qmake的版本和你要编译qt的mysql驱动的源码版本一致,否则大概率会出现这个问题,发现有mysql驱动了但是还是提示你驱动问题,这就很烦了,楼主就是踩了这个坑!

[root@GEC6818 /projeckt_app]#./mysql_test
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3
("QSQLITE", "QMYSQL", "QMYSQL3")
????? "Driver not loaded Driver not loaded"
  1. 编译qt自带的mysql驱动源码
    先下载一份和你qmake交叉编译工具链相同版本的qt源码,我此处使用的是这个
    在这里插入图片描述
    然后解压到一个地方,在进入到这个目录下:
qt-everywhere-opensource-src-5.7.0/qtbase/src/plugins/sqldrivers/mysql

该目录下的内容
在这里插入图片描述
紧接着我们需要修改mysql.pro文件为如下,此处我的路径和lib库为我们之前刚刚编译mysql源码的库路径
在这里插入图片描述
然后在这个路径下输入qmake和make对文件进行编译

/usr/local/Qt-Embedded-5.7.0/bin/qmake ./mysql.pro
make

编译完成完成后libqmysql.so就会出现在这个目录下在这里插入图片描述
接着将这个库拷贝到开发板你的qt库目录下(如果没有sqldrivers这个文件夹可以自己手动创建一个)
在这里插入图片描述

然后再在lib文件夹下创建一个libqsqlmysql.so的软链接

ln -s /usr/local/Qt-Embedded-5.7.0/plugins/sqldrivers/libqsq 、/lib/lmysql.so libqsqlmysql.so

然后我们就可以写个qt的程序测试下了!到此大功告成

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QtDebug>
#include <QSqlDatabase>
#include <QSqlError>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

       QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
       QStringList list = QSqlDatabase::drivers();
       qDebug()<<list;
       db.setHostName("localhost");
       db.setUserName("test");
       db.setDatabaseName("demo");
       db.setPassword("Li@123456");
       db.setPort(3306);
       if(!db.open()){
           qDebug()<<"失败原因:"<<db.lastError().text()<<endl;
           printf("connect faild!\r\n");
       }else {
            qDebug()<<"连接成功!"<<endl;
            printf("connect OK!\r\n");
       }
}

MainWindow::~MainWindow()
{
    delete ui;
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值