在ARM-Linux平台上移植SQLite,Port SQLite to ARM-Linux Platform.
一,交叉编译器:
arm-linux-gcc-4.4.1
二、移植步骤
下载源码
http://www.sqlite.org/2013/sqlite-autoconf-3080100.tar.gz
1.解压压缩包并改名进入解压后的目录,如下:
cd sqlite3.8.1
2.创建一个目录_install并进入该目录,用于在这个目录中进行交叉编译,如下:
mkdir _install
cd _install
3.在_install目录中运行sqlite3.8.1中的configure脚本生成Makefile文件,如下:
../configure CC=arm-linux-gcc –host=arm-linux –prefix=/home/gl/e/sqlite3.8.1/_install
选项host指定的是用arm交叉编译器(非交叉环境不用指定)进行编译 选项prefix后面的路径是到时候编译安装后目标存放的目录,
|
|
4.执行make和make install命令,如下:
make
- [root@austgl _install]# ml]# make
- /bin/sh ./libtool –tag=CC –mode=compile arm-linux-gcc -DPACKAGE_NAME=\“sqlite\” -DPACKAGE_TARNAME=\”sqlite\” -DPACKAGE_VERSION=\”3.8.1\” -DPACKAGE_STRING=\”sqlite\ 3.8.1\” -DPACKAGE_BUGREPORT=\”http://www.sqlite.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"sqlite\" -DVERSION=\"3.8.1\" -D_FILE_OFFSET_BITS=64 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\“ -DHAVE_FDATASYNC=1 -DHAVE_USLEEP=1 -DHAVE_LOCALTIME_R=1 -DHAVE_GMTIME_R=1 -DHAVE_DECL_STRERROR_R=1 -DHAVE_STRERROR_R=1 -DHAVE_POSIX_FALLOCATE=1 -I. -I.. -D_REENTRANT=1 -DSQLITE_THREADSAFE=1 -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_RTREE -g -O2 -MT sqlite3.lo -MD -MP -MF .deps/sqlite3.Tpo -c -o sqlite3.lo ../sqlite3.c
- libtool: link: arm-linux-gcc -D_REENTRANT=1 -DSQLITE_THREADSAFE=1 -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_RTREE -g -O2 -o .libs/sqlite3 shell.o ./.libs/libsqlite3.so -ldl -lpthread -Wl,-rpath -Wl,/home/gl/e/sqlite3.8.1/_install/lib
- [root@austgl _install]# ls
- config.log config.status libsqlite3.la libtool Makefile shell.o sqlite3 sqlite3.lo sqlite3.o sqlite3.pc
make install
|
|
编译和安装完后,在/home/gl/e/sqlite3.8.1/_install目录中会生成四个文件夹,分别是:
bin、include、 lib 、share, 如图:
然后分别将bin下的文件下载到开发板的/bin目录中,
lib下的所有文件下载到开发板的/lib目录中即可。
include 头文件拷贝到 交叉编译器的 include目录下。
5.在开发板上测试移植的sqlite数据库。执行:
#sqlite3
显示版本信息
- [root@EmbedSky /]# sqlite3
- SQLite version 3.8.1 2013-10-17 12:57:35
- Enter “.help” for instructions
- Enter SQL statements terminated with a “;”
- sqlite>
新建数据库 测试如下
- [root@EmbedSky /]# sqlite3 test.db ”create table tab1(name vachar(10),number sma
- llint)”
- [root@EmbedSky /]# sqlite3 test.db ”insert into tab1 values(‘test’,1)”
- [root@EmbedSky /]# sqlite3 test.db ”insert into tab1 values(‘iganlei’,2)”
- [root@EmbedSky /]# sqlite3 test.db ”select * from tab1”
- test|1
- iganlei|2
- [root@EmbedSky /]#
over……