交叉编译场景(arm(3)

在当前目录查找了rpl_malloc,发现configure里有#define malloc rpl_malloc一行。分析configure 脚本相关的代码,原来是ac_cv_func_malloc_0_nonnull引起的,OK我们不让它检查了,产生一个cache文件arm-linux.cache,欺骗configure:

[root@linux tslib]# echo "ac_cv_func_malloc_0_nonnull=yes" >$ ARCH -linux.cache

[root@linux tslib]# ./configure --prefix=$(ROOTFS_DIR)/usr --host=$ ARCH -linux --cache-file=$ ARCH -linux.cache 

配置成功后,重新编译一下,OK!

3. 构建处方

tslib.mk

TSLIB_DIR="tslib"

all: clean config build

config:

@cd $(TSLIB_DIR) && find * -exec dos2unix {} \; && \

touch NEWS README AUTHORS && \

./autogen.sh && \

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

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

echo "config done"

build:

@cd $(TSLIB_DIR) && \

make && make install && \

echo "build done"

clean:

@cd $(TSLIB_DIR) && \

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

echo "clean done"

[三。编译zlib]:

1. 基本信息:

软件名称

zlib

功能简述

zlib 一个压缩解压程序库

下载地址

软件版本

zlib-1.2.3.tar.gz

依赖关系

默认

前置条件

源文件位置:$(WORK_DIR)/zlib

2. 过程分析

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

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

出现了如下错误:

usage:

configure [--shared] [--prefix=PREFIX]  [--exec_prefix=EXPREFIX]

[--libdir=LIBDIR] [--includedir=INCLUDEDIR]

看来此configure非彼configure也,打开一看,果然不是autoconf系列的,又是一个貌合神离的东东。OK,按它的用法说明做吧,但问题是如何指定交叉编译器呢,按照惯例,设置环境变量CC试试看:

[root@linux zlib-1.2.3]# export CC=$ARCH-linux-gcc

[root@linux zlib-1.2.3]# ./configure -shared --prefix=$ROOTFS_DIR/usr

OK,配置成功,编译:

[root@linux zlib-1.2.3]# make && make install

OK,编译成功。

3.构建处方

zlib.mk

ZLIB_DIR="zlib-1.2.3"

all: clean config build

config:

@cd $(ZLIB_DIR) && \

export CC=$$ARCH-linux-gcc && \

./configure --prefix=$$ROOTFS_DIR/usr/local --shared && \

echo "config done"

build:

@cd $(ZLIB_DIR) && \

make && make install && \

echo "build done"

clean:

@cd $(ZLIB_DIR) && \

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

echo "clean done"

[编译readline和ncurses]  

1. 基本信息:

软件名称

readline

功能简述

readline一个命令行编辑程序库

下载地址

软件版本

readline-5.1.tar.gz

依赖关系

默认

前置条件

源文件位置:$(WORK_DIR)/ readline-5.1

2.  过程分析

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

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

OK,配置成功,编译:

[root@linux readline-5.1]# make && make install

OK,编译成功。少有的顺利!

3.         构建处方

readline.mk

READLINE_DIR="readline-5.1"

all: clean config build

config:

@cd $(READLINE_DIR) && \

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

echo "config done"

build:

@cd $(READLINE_DIR) && \

make && make install && \

echo "build done"

clean:

@cd $(READLINE_DIR) && \

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

echo "clean done"

1. 基本信息:

软件名称

ncurses

功能简述

ncurses一个文本界面的图形程序库

下载地址

软件版本

ncurses-5.5.tar.gz

依赖关系

默认

前置条件

源文件位置:$(WORK_DIR)/ ncurses-5.5

2.         过程分析

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

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

OK,配置成功,编译:

[root@linux ncurses-5.5]# make && make install

OK,编译成功。少有的顺利!

3.         构建处方

ncurses.mk

NCURSES_DIR="ncurses-5.5"

all: clean config build

config:

@cd $(NCURSES_DIR) && \

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

echo "config done"

build:

@cd $(NCURSES_DIR) && \

make && make install && \

echo "build done"

clean:

@cd $(NCURSES_DIR) && \

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

echo "clean done"

[编译libjpeg和libpng]

1. 基本信息:

软件名称

libjpeg

功能简述

libjpeg一个jpeg图形编码解码程序库

下载地址

软件版本

jpegsrc.v6b.tar.gz

依赖关系

默认

前置条件

源文件位置:$(WORK_DIR)/ jpeg-6b

2.  过程分析

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

[root@linux jpeg-6b]# ./configure --host=$ARCH-linux --prefix=$ROOTFS_DIR/usr

OK,配置成功,编译:

[root@linux jpeg-6b]# make && make install

哦,不对,怎么还是用gcc编译的,而不是用arm-linux-gcc编译的呢?看来--host没有生效,还是试试老方法-设置CC环境变量吧:

[root@linux jpeg-6b]# export CC=arm-linux-gcc

[root@linux jpeg-6b]# ./configure --host=$ARCH-linux --prefix=$ROOTFS_DIR/usr

OK,配置成功,编译:

[root@linux jpeg-6b]# make && make install

OK,编译成功。

3.  构建处方

jpeg.mk

JPEG_DIR="jpeg-6b"

all: clean config build

config:

@cd $(JPEG_DIR) && \

export CC=arm-linux-gcc && \

./configure --prefix=$$ROOTFS_DIR/usr && \

echo "config done"

build:

@cd $(JPEG_DIR) && \

make && make install && \

echo "build done"

clean:

@cd $(JPEG_DIR) && \

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

echo "clean done"

1. 基本信息:

软件名称

libpng

功能简述

libpng一个png图形编码解码程序库

下载地址

软件版本

libpng-1.2.8-config.tar.gz

依赖关系

默认zlib

前置条件

源文件位置:$(WORK_DIR)/ libpng-1.2.8-config

2. 过程分析

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

[root@linux libpng-1.2.8-config]# ./configure --host=$ARCH-linux --prefix=$ROOTFS_DIR/usr

出现了如下错误:

configure: error: ZLib not installed

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwwjjg.html