Sqlite China  
首页 | 各种语言的sqlite编程 | sqlite研究 |sqlite应用实例与杂谈 | sqlite相关下载 | SQlite论坛
当前位置 : 主页>sqlite研究>列表
交叉编译场景分析(arm-linux)编译sqlite
来源:工友 作者:工友 时间:2007-12-21

交叉编译场景分析(arm-linux)编译sqlite

 

1.         基本信息:

软件名称

sqlite

功能简述

sqlite是一个针对嵌入式系统设计的数据库管理系统(DBMS),实现了SQL92的基本功能,ARM版的可执行文件约300K.

下载地址

http://www.sqlite.org/

软件版本

sqlite-3.3.4.tar.gz

依赖关系

默认

readline

前置条件

源文件位置:$(WORK_DIR)/ sqlite-3.3.4

 

2.         过程分析

下载的稳定版本,configure已经存在,直接进行配置:

[root@linux sqlite-3.3.4]# ./configure --host=$ARCH-linux --prefix=$ROOTFS_DIR/usr

                

出现了如下错误:

configure: error: unable to find a compiler for building build tools

 

前面检查arm-linux-gcc都通过了,怎么还说没有找到编译器呢?花了点时间看configure的脚本,太复杂了,又结合configure.ac看了一下。原来是要设置config_TARGET_CCconfig_BUILD_CC两个环境变量。config_TARGET_CC是交叉编译器,config_BUILD_CC是主机编译器。重来:

[root@linux sqlite-3.3.4]# export config_BUILD_CC=gcc

[root@linux sqlite-3.3.4]# export config_TARGET_CC=arm-linux-gcc

[root@linux sqlite-3.3.4]# ./configure --host=$ARCH-linux --prefix=$ROOTFS_DIR/usr

 

出现了如下错误:

checking for /usr/include/readline.h... configure: error: cannot check for file existence when cross compiling

 

readline我们已经编译过了,readline.h是肯定存在,没有必要检查。还是施展我们欺骗大法吧,在cache文件里设置ac_cv_header_readline_h=yes,骗过configure脚本:

[root@linux sqlite-3.3.4]# echo ac_cv_header_readline_h=yes >$ARCH-linux.cache

[root@linux sqlite-3.3.4]#./configure --host=$ARCH-linux --prefix=$ROOTFS_DIR/usr --cache-file=$ARCH-linux.cache

 

这回配置成功了,编译:

[root@linux sqlite-3.3.4]# make && make install

 

有的机器上会出现下列错误:

libtool: compile: unable to infer tagged configuration

libtool: compile: specify a tag with `--tag'

 

这时检查一下libtool里的CC变量是否设置为arm-linux-gcc,如果不是,可以手工改过来,或者设置环境变量lt_compiler=arm-linux-gcc,重新配置一下。

 

OK,经过几番周折,终于编译过去了。

 

3.         构建处方

l         sqlite.mk

SQLITE_DIR="sqlite-3.3.4"

 

all: clean config build

 

config:

    @cd $(SQLITE_DIR) && \

    export config_BUILD_CC=gcc && \

    export config_TARGET_CC=arm-linux-gcc && \

    echo ac_cv_header_readline_h=yes >$$ARCH-linux.cache && \

    ./configure --host=$$ARCH-linux --prefix=$$ROOTFS_DIR/usr --cache-file=$$ARCH-linux.cache && \

    echo "config done"

   

build:

    @cd $(SQLITE_DIR) && \

    make && make install && \

    echo "build done"

   

clean:

    @cd $(SQLITE_DIR) && \

    if [ -e Makefile ]; then make distclean; fi && \

echo "clean done"

(阅读次数:
上一篇:嵌入式数据库在Java中的应用 下一篇:ucLinux下sqlite嵌入式数据库移植全攻略(1)
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
§最新评论
热点文章
·SQLite数据库的体系结构
·SQLite与其他数据库的速度
·SQL 语言参考资料
·SQLite语法备忘录
·sqlite 的相关调查1
·嵌入式数据库SQLite的一份
·SQLite在嵌入式Web服务器
·点评主流开源数据库的技术
·基于ARM-Linux的SQLite嵌
·SQLite与其他数据库的速度
·SQLite数据库编程--创建数
·SQL 语法手册
·SQLite Mode 数据库交互的
·SQLITE3 使用总结(3)
·XXTEA加密算法为SQLite 3.
·SQLite 第三版总览(简介)
·SQLite 第三版中的数据类
·用sqlite 执行标准 sql 语
·System.Data.Sqlite 上手
·SQLite编译安装步骤
相关文章
·SQLite Mode 数据库交互的
·SQL 语言参考资料
·SQLite在嵌入式Web服务器
·SQL 语法手册
·System.Data.Sqlite 上手
·SQLite数据库编程--创建数
·SQLite数据库编程--数据库
·SQLite在TorqueScript中的
·关于sqlite_exec回调函数
·用sqlite 执行标准 sql 语

版权Power by DedeCms   后台登陆
Copyright @ 2007