FruitDrop 2018-08-03
交叉编译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