OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6898|回复: 14

终于搞定在IMX6ULL上使用Qt sqlite,特地来总结一下

[复制链接]

5

主题

27

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2020-5-30
在线时间
19 小时
发表于 2020-6-3 20:37:37 | 显示全部楼层 |阅读模式
首先呢,uboot和kernel都用的原子资料里面的做好的uboot和linux 文件系统就是采用的原子已经配置好的带有qt5的yocoto文件系统以上是我的软件环境。这一波操作看似没有什么问题吧,但是我在将我以前写的带有sqlite数据库的软件移植到IMX6ULL上的时候发现,没法使用sqlite数据库。
qt代码如下
  1.     //建立数据库连接
  2.     QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
  3.     db.setDatabaseName("/opt/talkback.s3db");
  4.     db.open();
复制代码


在板子上运行提示 QSQLITE Driver not loaded。提示已经很明确了,没有QSQLITE驱动。
1)SQLITE在Qt程序中是以插件形式存在的,这一点在Qt帮助文档里面提到过
2)  查看文件系统 /usr/lib/qt5/plugins 文件夹下面,确实没有sqldrivers这个文件夹,更别提qsqlitedriver了,那么可以得出结论,这个文件系统就是运行不了qtsqlite的
3) 这个文件系统里面的qt版本是qt5.6.2(别问我怎么知道的,踩了很多坑),那么就需要我们手动去编译一份qt5.6.2的库了。
4) 在Qt官网下载Qt5.6.2 https://download.qt.io/new_archive/qt/5.6/5.6.2/single/ 选择
5) 之后我们就要请出原子的Qt移植文档了 原子的文档写的真是特别好,照着操作能学到好多东西
6) 但是问题就出在照着原子的文档操作也是没有qt sqlite插件的!怎么操作才能有,就是autoconfigure.sh少了一句话 -plugin-sql-sqlite \
#!/bin/sh
./configure \
-prefix /home/alientek/qt5.5.1/qt-everywhere-opensource-src-5.5.1/arm-qt \
-confirm-license \
-opensource \
-shared \
-release \
-make libs \
-xplatform linux-arm-gnueabi-g++ \
-optimized-qmake \
-pch \
-qt-sql-sqlite \
-plugin-sql-sqlite \
-qt-libjpeg \
-qt-libpng \
-qt-zlib \
-no-opengl \
-no-sse2 \
-no-openssl \
-no-cups \
-no-glib \

-no-dbus \
-no-xcb \
-no-xcursor -no-xfixes -no-xrandr -no-xrender \
-no-separate-debug-info \
-no-fontconfig \
-nomake examples -nomake tools -nomake tests -no-iconv \
-tslib \
-I/home/alientek/tslib/arm-tslib/include \
-L/home/alientek/tslib/arm-tslib/lib
exit

7) 然后一路 autoconfigure 再 make 再 make install就可以看到了 ...../plugins/qsqldrivers/libqsqlite.so了
8) 将这个文件拷贝到文件系统的 /usr/lib/qt5/plugins/qsqldrivers/下面就可以了

如果大家觉得麻烦我将我编译好的传上来

sqldrivers.rar

323.92 KB, 下载次数: 99

sqqlite插件

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
140
金钱
140
注册时间
2020-7-3
在线时间
40 小时
发表于 2020-9-30 09:59:12 | 显示全部楼层
测试过了,原子的阿尔法开发板能运行QSQlite数据库了。

libqsqlite.so要拷贝到文件系统的 /usr/lib/qt5/plugins/sqldrivers/下面。楼主笔误了。
回复 支持 1 反对 0

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2019-5-23
在线时间
9 小时
发表于 2020-9-23 16:24:12 | 显示全部楼层
目录是plugins/sqldrivers吧
回复 支持 1 反对 0

使用道具 举报

5

主题

27

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2020-5-30
在线时间
19 小时
 楼主| 发表于 2020-6-4 11:20:59 | 显示全部楼层
自己顶一下
回复 支持 反对

使用道具 举报

2

主题

714

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2177
金钱
2177
注册时间
2018-8-27
在线时间
257 小时
发表于 2020-6-4 11:47:09 | 显示全部楼层
厉害  厉害!!
森罗万象
回复 支持 反对

使用道具 举报

9

主题

758

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
5230
金钱
5230
注册时间
2019-9-25
在线时间
428 小时
发表于 2020-6-6 14:41:48 | 显示全部楼层
厉害厉害!yocto默认编译出来的可能没有sql插件,原子文件系统是5.6.2的,文档也有说,只是建议用qt5.5.1的,因为可以跑qwebkit。5.5.1和5.6.2很接近。可以用。顶起来!
想思考的时候,有时还可以用屁股,QQ 1252699831
回复 支持 反对

使用道具 举报

9

主题

758

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
5230
金钱
5230
注册时间
2019-9-25
在线时间
428 小时
发表于 2020-6-6 14:50:46 | 显示全部楼层
本帖最后由 茂茂2019 于 2020-8-20 13:07 编辑

qt5.12及4.19文件系统分享! 支持sqlite ,支持qt虚拟键盘!!!!
http://www.openedv.com/forum.php?mod=viewthread&tid=315047&fromuid=195955
(出处: OpenEdv-开源电子网)

回复 支持 反对

使用道具 举报

8

主题

888

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2377
金钱
2377
注册时间
2019-9-25
在线时间
394 小时
发表于 2020-6-6 19:50:50 | 显示全部楼层
厉害啦,赞
回复 支持 反对

使用道具 举报

5

主题

27

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2020-5-30
在线时间
19 小时
 楼主| 发表于 2020-6-7 09:16:53 | 显示全部楼层
茂茂2019 发表于 2020-6-6 14:50
你也可以看提供的交叉编译工具链里/opt/fsl-imx-x11/4.1.15-1.2.0/sysroots/cortexa7hf-vfp-neon-poky-linu ...

感谢指点 我去看下 我感觉我用不上webkit 直接用新一点的5.6.2还是挺爽的
回复 支持 反对

使用道具 举报

8

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2020-7-21
在线时间
38 小时
发表于 2020-7-22 19:43:32 | 显示全部楼层
请问我将在Ubuntu下执行的qt代码(用到SQLITE)拷在开发板上,需要拷哪些文件呀?
回复 支持 反对

使用道具 举报

5

主题

27

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2020-5-30
在线时间
19 小时
 楼主| 发表于 2020-7-29 09:14:33 | 显示全部楼层
zqqq 发表于 2020-7-22 19:43
请问我将在Ubuntu下执行的qt代码(用到SQLITE)拷在开发板上,需要拷哪些文件呀?

应该是按照原子教程吧源码进行交叉编译然后直接把可执行文件放在板子上就行了
回复 支持 反对

使用道具 举报

8

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2020-7-21
在线时间
38 小时
发表于 2020-7-29 10:57:47 | 显示全部楼层
小哈哈狼 发表于 2020-7-29 09:14
应该是按照原子教程吧源码进行交叉编译然后直接把可执行文件放在板子上就行了

谢谢。已经解决了。
回复 支持 反对

使用道具 举报

5

主题

27

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2020-5-30
在线时间
19 小时
 楼主| 发表于 2020-10-2 14:07:30 | 显示全部楼层
qizhimin 发表于 2020-9-30 09:59
测试过了,原子的阿尔法开发板能运行QSQlite数据库了。

libqsqlite.so要拷贝到文件系统的 /usr/lib/qt5/ ...

感谢指正,这里我写的时侯有点粗心
回复 支持 反对

使用道具 举报

52

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
316
金钱
316
注册时间
2019-4-1
在线时间
118 小时
发表于 2020-12-16 15:44:00 | 显示全部楼层
过几天正要用到,mark一下
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2021-1-21
在线时间
3 小时
发表于 2021-1-22 17:32:09 | 显示全部楼层
qizhimin 发表于 2020-9-30 09:59
测试过了,原子的阿尔法开发板能运行QSQlite数据库了。

libqsqlite.so要拷贝到文件系统的 /usr/lib/qt5/ ...

请问一下意思是不是这个文件拷入到开发板里面这个对应的目录下,其次在PC端Ubuntu也必须在QT源码编译出来的配置环境下运行出来的可执行文件运行在开发板上才可以,两个缺一不可?现在我的问题是源码编译不出来,其次在开发板上没有看到sqldrivers目录,希望能解答,谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-6-10 20:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表