需求来源于上一篇帖子,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进入命令模式,即可创建数据库,增加、查询、增加、删除数据了。
更多详情输入help可以查看用法
四、软件包获取
老规矩,方便懒人,提供编译好的install
目录和duo上一键安装的压缩包
SQLIte3 github