OpenWRT编译 -- 嵌入式系统Openwrt移植SQLite3数据库

零、感 叹 啊

  1、Talk is cheap, show me the code!

  2、No picture you say a J 8!

  先来端段热舞放松一下郁闷的心情吧!!!

一、说 明

  • 本文中所有的步骤均自己亲手测试/时间,并且在保证100%的真实性。
  • 由于时间、水平、精力有限,文中难免会出现不准确、甚至错误的地方,也很欢迎大佬看见的话批评指正。
  • 嘻嘻。。。。 。。。。。。。。收!

二、源码编译环境支持sqlite3

  相信你能找到我这个文章,那么不需要我介绍 sqlite3了。那么直接开始。

  最近在项目中使用到了数据库,当然首选就是咱们 sqlite3了,写好代码直接进行编译,在编译过程中出现如下错误。

$ pwd
/home/song/Desktop/sqliteTest/

$ make V=OPENWRT
......

mipsel-openwrt-linux-gcc main.o gloable.o gettime.o sqlite.o menu.o -o /home/song/Desktop/sqliteTest/bin/main -lm -Wl,--no-as-needed -lsqlite3	 
/home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.4.0_musl/bin/../lib/gcc/mipsel-openwrt-linux-musl/7.4.0/../../../../mipsel-openwrt-linux-musl/bin/ld: cannot find -lsqlite3
collect2: error: ld returned 1 exit status
Makefile:4: recipe for target '/home/song/Desktop/sqliteTest/bin/main' failed
make[1]: *** [/home/song/Desktop/sqliteTest/bin/main] Error 1
make[1]: Leaving directory '/home/song/Desktop/sqliteTest/obj'
Makefile:52: recipe for target 'obj' failed
make: *** [obj] Error 2

  错误中的提示已经很明显了,就是在连接动态库 libsqlite3.so 的时候出现异常返回,是因为不存在 libsqlite3.so 的动态库。那么就需要将 sqlite3 的环境创建完善。其实 openwrt 的源码中已支持了 sqlite3 等数据库,我们只需要在进行源码编译的时候讲 sqlite3 编译进去就可以了。

  1、在 openwrt 的编译环境主目录下执行下面命令:

$ sudo make menuconfig

  2、在 menuconfig 中找到 Libraries --> database --> libsqlite3 ,选择为 Y ,即 标注为 * 号,如下图所示。

  3、在 Utilities --> database --> sqlite3-cli ,选择为 * 号,如下图所示。

  4、返回,选择 Yes保存退出config。

  5、使用下面指令直接重新编译即可,确保在编译过程中系统能够正常连接网络

$ sudo make V=99

  也可以做在进入 menuconfig 的时候,直接选择 Utilities --> database --> sqlite3-cli ,选择为 * 号然后退出编译即可,因为 sqlite3-cli 依赖于前面的 libsqlite3 , 在选择 sqlite3-cli 的时候前面的 libsqlite3 会被默认选中的。
  

三、交叉编译工具链支持sqlite3

  通过前面的编译完成,那么 openwrt 中的 sqlite3 相关的动态库文件均已经生成,但是在实际进行编译的时候,还是出现上述错误的情况,我们需要继续配置让 openwrt 的交叉编译工具链也能支持 sqlite3

  1、首先确定自己的交叉编译工具链的位置所在。

  我的openwrt的交叉编译工具链的位置配置在 ~/.bashrc 中,如下所示。

    export PATH="$PATH:/home/openwrt/staging_dir/toolchain-mipsel_24kc_gcc-7.4.0_musl/bin"
    export PATH="$PATH:/home/openwrt/staging_dir/"
    export STAGING_DIR=/openwrt/openwrt/open_for_x86/openwrt/branches/attitude_adjustment/staging_dir

  2、将 sqlite3lib/ 文件和 bin/ 文件夹拷贝到交叉编译工具链所在对应文件中。

  1)首先确保自己的当前位置。

$ pwd
/home/song/openwrt

  2)将 staging_dir/target-mipsel_24kc_musl/usr/lib/ 文件复制到 staging_dir/toolchain-mipsel_24kc_gcc-7.4.0_musl/ 中。

$ cp staging_dir/target-mipsel_24kc_musl/usr/lib/ staging_dir/toolchain-mipsel_24kc_gcc-7.4.0_musl/ -a

  3)将 staging_dir/target-mipsel_24kc_musl/usr/bin/ 文件复制到 staging_dir/toolchain-mipsel_24kc_gcc-7.4.0_musl/ 中。

$ cp staging_dir/target-mipsel_24kc_musl/usr/bin/ staging_dir/toolchain-mipsel_24kc_gcc-7.4.0_musl/ -a

  
  好啦,废话不多说,总结写作不易,如果你喜欢这篇文章或者对你有用,请动动你发财的小手手帮忙点个赞,当然 关注一波 那就更好了,就到这儿了,么么哒(*  ̄3)(ε ̄ *)。

  • 27
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

青椒*^_^*凤爪爪

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

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

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

打赏作者

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

抵扣说明:

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

余额充值