主要参考了以下文章:
一、开发环境:
Mini2440,
Linux_2.6.32.2内核,
Fedora 9
arm-linux-gcc-4.3.2
二、移植步骤
下载源码
为3.7.7.1版
1.解压数据库源文件并进入解压后的目录,如下:
tar -zxvf sqlite-autoconf-3070701.tar.gz
cd sqlite-autoconf-3070701
2.创建一个目录build并进入该目录,用于在这个目录中进行交叉编译,如下:
mkdir build
cd build
3.在build目录中运行sqlite-autoconf-3070701中的configure脚本生成Makefile文件,如下:
../configure --host=arm-linux --prefix=/root/sqlite-autoconf-3070701/build/target
选项host指定的是用arm交叉编译器进行编译选项
prefix后面的路径是到时候编译安装后目标存放的目录,你可以任意设置,如果你要放在刚才的解压目录下,要根据自己目录设置。
4.执行make和make install命令,如下:
make
make install
make时如果出现以下错误
arm-linux-gcc -DPACKAGE_NAME=\"sqlite\" -DPACKAGE_TARNAME=\"sqlite\" -DPACKAGE_VERSION=\"3.7.7.1\" "-DPACKAGE_STRING=\"sqlite 3.7.7.1\"" -这里的空格去掉
DPACKAGE_BUGREPORT=\"" -DPACKAGE_URL=\"\" -DPACKAGE=\"sqlite\" -DVERSION=\"3.7.7.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 -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 @ -D_REENTRANT=1 -DSQLITE_THREADSAFE=1 -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_RTREE -g -O2 -MT sqlite3.lo -MD -MP -MF .deps/sqlite3.Tpo -c ../sqlite3.c -fPIC -DPIC -o .libs/sqlite3.o
arm-none-linux-gnueabi-gcc: 3.7.7.1": No such file or directory
: warning: missing terminating " character
make: *** [sqlite3.lo] Error 1
编译和安装完后,在/root/sqlite-autoconf-3070701/build/target目录中会生成三个目标文件夹,分别是:
bin、include、 lib,
然后分别将bin下的文件下载到开发板的/usr/bin目录中,
lib下的所有文件下载到开发板的/lib目录中即可。
include 目录下是sqlite的C语言API的头文件,编程时会用到。
5.在开发板上测试移植的sqlite数据库。登录开发板的Linux,执行:
sqlite3 test.db
[root@Qstech/]#sqlite3 test.db
SQLite version 3.7.7.1 2011-06-28 17:39:05
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
如果有提示so找不到错误,
可在pc上执行arm-linux-readelf -d sqlite3查看动态库之位置。
阅读(3154) | 评论(0) | 转发(1) |