交叉编译SQLite3让duo用上数据库

需求来源于上一篇帖子,mosquitto的消息持久化就需要将数据储存,最好的存储方案就是数据库。那么我们对嵌入式上使用较多的SQLite3进行交叉编译吧。

一、源码获取
官网 SQLite Download Page
https://www.sqlite.org/download.html
当前最新的版本 sqlite-autoconf-3420000.tar.gz (3.00 MiB)我们进行下载。

在Ubuntu里进行解压
tar zxvf sqlite-autoconf-3420000.tar.gz

进入源码目录
cd sqlite-autoconf-3420000

二、交叉编译
创建编译生成目录

mkdir build
cd build

riscv交叉编译环境使能
source 一下交叉编译工具链

shell输入riscv 按TAB能自动补齐工具链名称即为环境OK

生成编译文件
../configure --enable-readline=no --host=riscv64-unknown-linux-musl --prefix=$(pwd)/install_cv1800b

完成后,修改build下的Makefile文件,我们追加一些针对芯片的编译参数进去

255-256行C/C++的编译参数添加

CFLAGS = -g -O2 -mcpu=c906fdv -march=rv64imafdcv0p7xthead -mcmodel=medany -mabi=lp64d
CPPFLAGS = -mcpu=c906fdv -march=rv64imafdcv0p7xthead -mcmodel=medany -mabi=lp64d

保存退出

然后编译安装

make 
make install

在build下生成了编译安装目录install_cv1800b

将bin下的可执行文件拷贝至开发板下usr/bin
将lib下的动态库so全部拷贝至开发板usr/lib下

那么在duo就可以使用了, 应用层二次开发请连接下面的库和引用include的头文件

三、duo使用
sqlite3 --versoin即可查看版本

如需要命令行方式对数据库操作,可直接运行sqlite3进入命令模式,即可创建数据库,增加、查询、增加、删除数据了。
image

更多详情输入help可以查看用法

四、软件包获取
老规矩,方便懒人,提供编译好的install目录和duo上一键安装的压缩包
SQLIte3 github