SQLite3移植STM32MP157 ARM开发板

本文详细介绍了如何在Ubuntu环境下下载、解压SQLite3源码,并使用arm-linux-gnueabi交叉编译器进行配置、编译和安装。移植完成后,通过将相关文件复制到开发板并创建软链接,成功在STM32MP157开发板上运行SQLite3。
摘要由CSDN通过智能技术生成

SQLite3移植STM32MP157 ARM开发板

下载源码

移植首先就得有源码,从SQLite官网下载最新版源码
下载地址
QQ截图20221130164446.png
这里使用的环境为Ubuntu16 所以直接在Ubuntu下下载的。

wget https://www.sqlite.org/2022/sqlite-autoconf-3400000.tar.gz

下载完成后解压文件

tar -vxf sqlite-autoconf-3400000.tar.gz

进入解压后的目录

cd sqlite-autoconf-3400000

进入后可以看到解压出的源码文件如下
QQ截图20221130165045.png

开始移植

配置生成Makefile

在源码个目录下执行如下命令
–host为指定交叉编译器为arm-linux-gnueabi
交叉编译器安装可以参考之前文章STM32MP157AAA3裸机点灯(汇编)在里面有交叉编译器安装教程部分
–prefix为指定安装目录为当前目录下install文件夹

./configure  --host=arm-linux-gnueabi  --prefix=${PWD}/install

执行后效果如下
QQ截图20221130170532.png
查看文件可以看到已经生成Makefile文件
QQ截图20221130170634.png

编译

源码根目录下执行make命令开始编译

make -j8

编译成功如下
QQ截图20221130171215.png
安装

make install

成功后源码目录下自动创建insall文件夹
如下图
QQ截图20221130171309.png

移植到开发板

将install/bin目录下的sqlite3文件拷贝到开发板/bin目录下
将install/lib目录所有文件文件拷贝到开发板/lib目录下
按下图操作
QQ截图20221130201321.png

开发板内创建软连接

#进入lib目录
cd /lib/
#创建软连接
ln -s libsqlite3.so.0.8.6 libsqlite3.so.0

验证

测试

在开发板输入sqlite3若如下图所示表示移植成功
QQ截图20221130192317.png

编写应用程序测试

测试程序使用交叉编译器进行编译时提示找不到sqlite3头文件
“致命错误: ~/sqlite3/sqlite3.h:没有那个文件或目录”
QQ截图20221130192157.png
这是因为交叉编译器中没有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

复制完成后重新编译你的测试程序
最后复制测试程序到开发板测试运行
测试程序运行成功
QQ截图20221130193811.png

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kongbai_w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值