Chinaunix首页 | 论坛 | 博客
  • 博客访问: 186087
  • 博文数量: 21
  • 博客积分: 218
  • 博客等级: 二等列兵
  • 技术积分: 110
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-03 14:50
个人简介

技术宅

文章存档

2020年(3)

2018年(1)

2017年(2)

2016年(1)

2015年(1)

2013年(1)

2012年(3)

2011年(9)

我的朋友

分类: 嵌入式

2011-11-19 16:31:54

主要参考了以下文章:
 
一、开发环境: 
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) |
给主人留下些什么吧!~~