在Linux环境下进行sqlite3的交叉编译并移植到AR

发表时间: 2018-08-03 09:00

交叉编译sqlite3的目的(作用):能在x86的平台下交叉编译出能在ARM开发板运行的程序。

将sqlite3移植到ARM的目的(作用):能在ARM开发板上建数据库和对数据库进行增删查改。

交叉编译sqlite3

安装的操作过程基本跟在Linux下安装x86平台的sqlite3一样:Linux下安装sqlite3

当然,安装之前你得确认你的系统有交叉编译工具链,可以通过命令 arm-linux-gcc -v 查看。

解压:tar -xvf
sqlite-autoconf-3071502.tar.gz

进入目录:cd sqlite-autoconf-3071502

新建一个安装目录:mkdri my_install

执行:./configure --host=arm-linux --prefix=安装目录的完整路径

参数 --host=arm-linux 的作用是指明运行环境

编译并安装:make && make install

将库文件和头文件复制到交叉编译工具链的lib目录和include目录中:

cp 安装目录/lib/libsqlite3.so libsqlite3.so.0 libsqlite3.so.0.8.6 /.../交叉编译工具链目录/usr/lib

cp 安装目录/include/sqlite3.h /.../交叉编译工具链目录/usr/include

如果复制库文件时导致失去了链接关系,则在lib目录下重新链接一下:

ln -s libsqlite3.so.0.8.6 libsqlite3.so.0

ln -s libsqlite3.so.0.8.6 libsqlite3.so

保险的做法是保持链接复制:

即cp的参数使用-af(-a:保持源文件的原有结构和属性; -f:强制覆盖已经存在的目标文件,而不提示用户进行确认)

编译时,使用命令:arm-linux-gcc sqlitest.c -o sqlitest -l sqlite3

移植到ARM开发板上

要将sqlite移植到ARM开发板上,只需要:

将libsqlite3.so libsqlite3.so.o libsqlite3.so.0.8.6三个文件复制到ARM开发板的/lib目录下,将sqlite3复制到根目录下即可(也可以其他目录下)。

复制到开发板之前可以使用命令arm-linux-strip去掉sqlite3和库文件libsqlite3.so.0.8.6中的调试信息,大大减少所占的空间:

arm-linux-strip sqlite3

arm-linux-strip libsqlite3.so.0.8.6