设为首页 加入收藏

TOP

交叉编译场景(arm-linux)分析(七)
2014-11-24 12:00:22 来源: 作者: 【 】 浏览:4
Tags:交叉 编译 场景 arm-linux )分析
NO


#define BuildDBE NO


#define BuildLBX NO



#define BuildFonts YES


#undef BuildXF86RushExt


#define BuildXF86RushExt NO


#undef BuildRender


#define BuildRender YES


#define UseRgbTxt YES


#define BuildFontServer NO


#define BuildClients NO


#define BuildFonts YES


#undef BuildXF86RushExt


#define BuildXF86RushExt NO


#undef BuildRender


#define BuildRender YES


#define UseRgbTxt YES


#define BuildFontServer NO


#define OmitSnfSupport YES


#define XdecMultiDepthServer NO


#define XsunServer NO


#define Xsun24Server NO


#define XsunMonoServer NO


#define XsunLynxServer NO


#define XSavageServer NO


#define XIgsServer NO


#define XTridentServer NO


#define XchipsServer NO


#define Xmach64Server NO


#define Xi810Server NO


#define XSis530Server NO


#define XTrioServer NO


#define XipaqServer NO


#define XTS300Server NO


#define XItsyServer NO


#define XvesaServer NO


#define XDarwinServer NO



#define XF86CardDrivers fbdev


#define XInputDrivers mouse keyboard


[编译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_CC和config_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. 构建处方


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:


@

首页 上一页 4 5 6 7 下一页 尾页 7/7/7
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇POSIX线程的私有数据 下一篇POSIX线程的创建和取消

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·在 Redis 中如何查看 (2025-12-26 03:19:03)
·Redis在实际应用中, (2025-12-26 03:19:01)
·Redis配置中`require (2025-12-26 03:18:58)
·Asus Armoury Crate (2025-12-26 02:52:33)
·WindowsFX (LinuxFX) (2025-12-26 02:52:30)