建立ARM Linux交叉编译环境
创建了一些文件,包括arm-linux-ld,arm-linux-as等。
3、 编译内核
cd ../../kernel/linux-2.4.21
改Makefile文件使
ARCH = arm
CROSS_COMPILE=arm-linux-
make menuconfig
在System Types中选择正确的硬件类型
make dep
之后执行如下操作
mkdir $TARGET_PREFIX/include
cp dR $KERNEL_SOURCE_LOCATION/include/arm-asm \
RGET_PREFIX/include/asm
cp dR $KERNEL_SOURCE_LOCATION/include/linux \
RGET_PREFIX/include/linux
4、 创建boot-trap gcc,这个GCC没有glibc库的支持,所以只能用于编译内核,bootloader等,后面创建C库也要用到这个编译器,所以创建它主要是为创建C库做准备,如果只想编译内核和bootloader那么,就可以到此结束。
cd ../../build-dir/build-gcc
../../src-dir/gcc-2.95.3/configure –target=$TARGET –prefix=$PREFIX \
--with-headers=$ERNEL_SOURCE_LOCATION/include –enable-language=c \
--disable-threads
然后修改src-dir/gcc-2.95.3/gcc/config/arm/t-linux文件,在
TARGET_LIBGCC2_CFLAGS中添加如下两个定义
-Dinhibit-libc –D__gthr_posix_h
make
make install
这时$PREFIX/bin下创建了一些文件,主要创建了arm-linux-gcc。
5、 创建gblic
cd ../build-glibc
export CC=arm-linux-gcc
../../src-dir/glibc-2.2.4/configure –host=$TARGET –prefix=$TARGET_PREFIX \
--enable-add-ons
make
make install
将glibc库安装完之后,我们要到$TARGET_PREFIX/lib这个目录下修改libc.so文件,将其中
GROUP(/lib/libc.so.6 /lib/libc_noshared.a)
这个命令脚本中的/lib 的绝对路径去掉, 也就是改为如下的形式
GROUP(libc.so.6 libc_noshared.a)
这样下一步创建完整的编译器时,才不至于导致错误.
6、 创建功能健全的GCC,并创建G++
在成功创建了libc之后,我们就可以创建功能丰富的GCC编译器了,并且可以创建支持编译C++程序的G++。
cd ../../src-dir
tar –xvzf ../setup-dir/ gcc-g++2.95.3.tar.gz
cd ../build-dir/build-gcc
export CC=gcc
../../src-dir/gcc-2.95.3/configure –target=$TARGET –prefix=$PREFIX \
–enable-language=c,c++
然后修改src-dir/gcc-2.95.3/gcc/config/arm/t-linux文件,在
TARGET_LIBGCC2_CFLAGS中去除如下两个定义
-Dinhibit-libc –D__gthr_posix_h
make
make install
7,至此我们成功的创建了ARM Linux的交叉编译工具。
ARMLinux交叉编译环 相关文章:
- 在ubuntu8.10 下建立 ARM-Linux 交叉编译环境(11-09)
- 制作ARM Linux交叉编译环境(11-09)
- 创建ARM Linux交叉编译环境实践(11-09)
- Linux 系统下ARM Linux交叉编译环境crosstool工具(11-09)
- Ubuntu配置安装ARM Linux交叉编译环境完整流程(11-09)
- Windows CE 进程、线程和内存管理(11-09)