书接上回,想在以上可以通过qt界面将传感器数据解析并显示在屏幕的功能基础上加入数据库的功能,为后续服务器做准备,了解到嵌SQLite 是一个嵌入式SQL 数据库引擎。正好手头的Remi Pi开发板也支持sqlite,所以准备实现将传感器数据存储到sqlite数据库中。
首先开始是最朴素的思维,调用qt的qsql相关的库函数加入建立数据库插入数据,修改好后在Ubuntu虚拟机上交叉编译之后也没有问题,但是下载到开发板运行时报了以下的错误
报错说的是QSLITE的驱动找不到,然后我就开始查,查到的比较靠谱的一个回答说是要把sqldrivers的项目文件夹放在可执行目录下
https://blog.csdn.net/no_say_you_know/article/details/123782107
还有说要修改这句的
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", "SQLITE");
但是我都试过了没有效果,后来转过来一想我在Ubuntu上交叉编译没有问题,所以自然上面的解决办法不奏效,顺着这个思路的话那只能是开发板的问题咯。然后我就去找米尔的技术支持,经过询问才知道原来我开发板的full镜像qt不包含Qsql这个库,啊这。。。。。。
(不是哥们你文档里也妹写啊,我要是不问技术支持真就一辈子都不到啊)
而且如果想要增加Qsql这个库需要yocto重新构建镜像麻烦得很,这个时候还得是技术支持,他建议我可以用sqlite的api代替Qsql库,我当时就感觉好有道理,因为我知道开发板的镜像是有sqlite的,而我实现的功能都是对于数据库的建立插入等数据,所以只是两种不同的途径。
我就开动了,查了一下sqlite的用法,对cpp小改了一下
改完之后交叉编译上板子,橙啦!
最后感觉这个问题很小众网上基本没有解决办法,而且也是在技术支持的帮助下才得以解决,所以记录一下希望帮到遇到类似问题的朋友。
另外在查资料的过程中看到了一篇总结qt中sqlite问题的帖子,po在下面有需要的也可参考