加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SQLite向arm-linux的移植

发布时间:2020-12-12 19:59:51 所属栏目:百科 来源:网络整理
导读:SQLite是一个开源的嵌入式关系数据库。 一、SQLite环境的建立: 1.首先从下载最新版本的sqlite源码包,我下载的是sqlite-amalgamation-3.7.3.tar.gz,并将下载的文件解压。 下载地址:http://pan.baidu.com/s/1kTKBxmJ 2.在解压生成的 sqlite-3.7.3 目录下执
SQLite是一个开源的嵌入式关系数据库。
一、SQLite环境的建立:
1.首先从下载最新版本的sqlite源码包,我下载的是sqlite-amalgamation-3.7.3.tar.gz,并将下载的文件解压。 下载地址:http://pan.baidu.com/s/1kTKBxmJ
2.在解压生成的 sqlite-3.7.3 目录下执行
./configure --host=arm-cortex_a8-linux-gnueabi --prefix=/home/linux/sqlite-arm,其中host为设置交叉编译器,prefix为设置存放编译生成文件的目录,sqlite-arm为跟sqlite-3.7.3同级的目录。
arm-cortex_a8-linux-gnueabi: 编译器的版本要和内核版本一致,所以要根据自己的情况来决定。
3.执行上步操作之后会生成Makefile,打开Makefile文件,找到-DPACKAGE_STRING="sqlite 3.7.3"处,把3.7.3前面的“”和空格删除。(我使用的这个版本有个错误,其他的版本不一定有)
4.然后直接执行make
(要是这样make有错的话,可以在make之前先make clean一下,然后在make),生成可执行文件.
5.然后再执行make install,配置环境变量。
sqlite-arm目录下会生成bin、include、share和lib四个目录。
二、SQLite数据库的移植:
1.去掉/home/linux/project/sqlite-arm目录下的sqlite3的调示信息(瘦身):$ arm-none-linux-gnueabi-strip sqlite3。
(为了在PC环境下调试,最好备份一下sqlite3,一下瘦身的文件同理)
2.将sqlite3下载到开发板的/usr/bin目录:
cp sqlite3 /source/rootfs/usr/bin
3、在/home/linux/project/sqlite-arm/lib 中找到libsqlite3.so.0.8.6这个库文件,去掉调示信息后将libsqlite3.so.0.8.6拷贝到开发板目录/usr/lib下,在开发板目录/usr/lib下创建一个符号链接:ln -s libsqlite3.so.0.8.6 libsqlite3.so.0。这样你交叉编译的程序就可以使用sqlite3数据库了。
指令如下:
在/home/linux/sqlite-arm/lib 下:
$ arm-none-linux-gnueabi-strip libsqlite3.so.0.8.6
cp libsqlite3.so.0.8.6 /source/rootfs/lib
在开发板目录 /lib(/source/rootfs/lib)下:
$ ln -s libsqlite3.so.0.8.6 libsqlite3.so.0
注:libsqlite3.so.0是链接到libsqlite3.so.0.8.6的.
三、SQLite的测试:
写sqlte相关的程序,database_task.c。此处省略了该文件的内容。
四、在PC机上生成执行文件,有两种方法:
第一种方法:把库文件放到交叉编译默认搜索的目录
(/home/linux/toolchain/arm-cortex_a8-linux-gnueabi/lib)
$ sudo ln -s /home/linux/sqlite-arm/lib/libsqlite3.so.0.8.6 /home/linux/toolchain/arm-cortex_a8-linux-gnueabi/lib/libsqlite3.so
$ arm-cortex_a8-linux-gnueabi-gcc database_task.c -lsqlite3
$ cp a.out /source/rootfs
第二种方法:直接在交叉编译时,写明需要的库
$ arm-cortex_a8-linux-gnueabi-gcc database_task.c ../sqlite-arm/lib/libsqlite3.so.0.8.6
cp a.out /source/rootfs
备注:以下命令可以查看执行文件,使用了哪些库。
$ arm-cortex_a8-linux-gnueabi-ldd --root=/home/linux/toolchain/arm-cortex_a8-linux-gnueabi/lib a.out
若执行了以下命令,代码文件夹下,就可以没有sqlite3.h。数据库文件需要拷贝到开发板目录(/source/rootfs下)。
$ sudo cp /mnt/hgfs/sh/sqlite3.h /home/linux/toolchain/arm-cortex_a8-linux-gnueabi/include/
原文连接: http://tieba.baidu.com/p/2756287673

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读