SQLite3移植STM32MP157 ARM开发板
下载源码
移植首先就得有源码,从SQLite官网下载最新版源码
下载地址
这里使用的环境为Ubuntu16 所以直接在Ubuntu下下载的。
wget https://www.sqlite.org/2022/sqlite-autoconf-3400000.tar.gz
下载完成后解压文件
tar -vxf sqlite-autoconf-3400000.tar.gz
进入解压后的目录
cd sqlite-autoconf-3400000
进入后可以看到解压出的源码文件如下
开始移植
配置生成Makefile
在源码个目录下执行如下命令
–host为指定交叉编译器为arm-linux-gnueabi
交叉编译器安装可以参考之前文章STM32MP157AAA3裸机点灯(汇编)在里面有交叉编译器安装教程部分
–prefix为指定安装目录为当前目录下install文件夹
./configure --host=arm-linux-gnueabi --prefix=${PWD}/install
执行后效果如下
查看文件可以看到已经生成Makefile文件
编译
源码根目录下执行make命令开始编译
make -j8
编译成功如下
安装
make install
成功后源码目录下自动创建insall文件夹
如下图
移植到开发板
将install/bin目录下的sqlite3文件拷贝到开发板/bin目录下
将install/lib目录所有文件文件拷贝到开发板/lib目录下
按下图操作
开发板内创建软连接
#进入lib目录
cd /lib/
#创建软连接
ln -s libsqlite3.so.0.8.6 libsqlite3.so.0
验证
测试
在开发板输入sqlite3若如下图所示表示移植成功
编写应用程序测试
测试程序使用交叉编译器进行编译时提示找不到sqlite3头文件
“致命错误: ~/sqlite3/sqlite3.h:没有那个文件或目录”
这是因为交叉编译器中没有sqlite3的头文件与动态库,需要手动添加
添加过程如下
复制sqlite源码目录下install/include目录下所有文件到交叉编译器头文件目录
sudo cp sqlite源码目录/install/include/*.h 你的编交叉编译器目录/arm-linux-gnueabihf/include/
复制sqlite源码目录下install/lib目录下全部文件到交叉编译器目录/lib目录
sudo cp -r sqlite源码目录/install/lib/* 你的编交叉编译器目录/arm-linux-gnueabihf/lib
复制sqlite源码目录下install/bin目录下全部文件到交叉编译器目录/bin目录
sudo cp -r sqlite源码目录/install/bin/* 你的编交叉编译器目录/arm-linux-gnueabihf/bin
复制完成后重新编译你的测试程序
最后复制测试程序到开发板测试运行
测试程序运行成功