arm ubuntu16.04Qt调用Mysql

目前所使用的板子的是华北工控的EMB3500,cpu为i.Mx6 Q(四核) / DL(双核), Cortex-A9@1GHz,系统为ubuntu16.04,使用的编译工具链为arm-linux-gnueabihf
由于他们提供的rootfs里面已经安装了opengl,Qt的编译比较顺利。编译流程可以参考我另外一篇博文
然后要编译libqsqlmysql.so。
以下以编译Qt2.12.9的libqsqlmysql.so为例。

0.先弄好板子的上网。
我这里是用一根网线连接板子,然后将电脑的wifi共享给电脑的eth网口,最终达到板子连接网络的效果。主要是要注意板子的固定IP、dns设置。具体可以搜索windows共享上网。
有时还需要编辑一下那个 /etc/resolv.conf
参考:https://blog.csdn.net/qq_43674360/article/details/109046051

1.板子上面安装mysql。

sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev

安装的时候可能会报那个什么@port@的错误,这时候只要修改一下那个/etc/my.cnf文件就行。
参考这里。

ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock

安装完,并且通过命令行登陆mysql没问题之后。就要开始将板子的主要目录同步到交叉编译的电脑上了。

2.查看mysqlclient安装在哪里。

 find / -name "libmysqlclient*"

在这里插入图片描述
我的在/usr/lib/arm-linux-gnueabihf这个文件夹。

3.将libmysqlclient所在的/usr/lib/arm-linux-gnueabihf文件夹tar好。

tar -cvf arm-linux-gnueabihf.tar /usr/lib/arm-linux-gnueabihf

4.mysql的头文件文件夹 /usr/include/mysql 也拷贝一份出来(不同的板子可能不一样,因板子系统而异)。
至此我们得到这两个玩意。
在这里插入图片描述

5.然后来到我们电脑端的ubuntu中。把原来的arm-linux-gnueabihf删除掉,用我们拷贝出来的替换;
在这里插入图片描述
同时,那个拷贝出来的头文件文夹也拷贝到相应位置。
在这里插入图片描述
拷贝完之后记得要用我们之前的脚本处理一下这个rootfs

python sysrootChange.py ./rootfs

-------至此,rootfs的初始化基本完成。接下来处理qmysql的源码。

6.到这里下载qtbase源码
在这里插入图片描述
7.将压缩包拷贝到你的电脑ubuntu系统(你交叉编译Qt的那个电脑系统)中,然后解压。

8.然后修改源码 qtbase-everywhere-src-5.12.9/src/plugins/sqldrivers/mysql中的mysql.pro文件

TARGET = qsqlmysql

HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp

#QMAKE_USE += mysql

OTHER_FILES += mysql.json

PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)

#之前拷贝上来的头文件路径
INCLUDEPATH +="/home/yong/Desktop/Qt_source_north/rootfs/usr/include/mysql"
#之前拷贝上来的库
LIBS +=-L"/home/yong/Desktop/Qt_source_north/rootfs/usr/lib/arm-linux-gnueabihf"\
        -lmysqlclient -lssl

#指定编译出来的libqmysql.so存放的目录
DESTDIR  = ../mysql/lib/

9.修改源码qtbase-everywhere-src-5.12.9/src/plugins/sqldrivers的qsqldriverbase.pri

QT  = core core-private sql-private

# For QMAKE_USE in the parent projects.
#include($$shadowed($$PWD)/qtsqldrivers-config.pri)
include(./configure.pri)

PLUGIN_TYPE = sqldrivers
load(qt_plugin)

DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII

10.然后用之前交叉编译出来的qmake去编译这个mysql.pro

cd qtbase-everywhere-src-5.12.9/src/plugins/sqldrivers/mysq
ArmQmake mysql.pro
make

最后得到这玩意
在这里插入图片描述

11.最后将这玩意拷贝到你部署在板子上的Qt文件夹中。
我的是在这里(其实最好是用同一个版本的源码来编译,我这里由于一些原因,用Qt5.12.7去编译Qt5.12.9的qmysql源码)
/Qt5.12.7_ARM/plugins/sqldrivers
在这里插入图片描述
12.最后的最后,写个程序测试一下。
在这里插入图片描述
run.sh

export QTDIR=/Qt5.12.7_ARM
export LD_LIBRARY_PATH=QTDIR/lib:LD_LIBRARY_PATH
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0 #framebuffer驱动
export QWS_MOUSE_PROTO=/dev/input/event0
./MySqlDemo

在这里插入图片描述
ok,收工。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值