当前位置: 代码网 > it编程>数据库>Mysql > 【ARM mysql】使用gec6818开发板连接编译并且mysql远程服务器

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

2024年08月02日 Mysql 我要评论
首先开始我们需要编译一个mysql的源码,此处我使用的就是上面提到的文章中的那位大佬的,然后根据他的流程你应该能编译出一个arm版的mysql库,下面我只讲一些问题。在编译之前请确保你的qt交叉编译工具qmake的版本和你要编译qt的mysql驱动的源码版本一致,否则大概率会出现这个问题,发现有mysql驱动了但是还是提示你驱动问题,这就很烦了,楼主就是踩了这个坑!如果顺利的话你在你刚刚填的安装路径下会出现一个文件夹,下面的lib和include都是我们后面要用到的。然后我们就可以写个qt的程序测试下了!

大致步骤和流程

参考文章:
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;
}

在这里插入图片描述

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com