第二个工具链

2.2.3准备
1)创建新的用户维塔
groupadd维塔
useradd - m - s/bin/bash - g维塔维塔
2)添加文件维塔/etc/sudoers.d、文件内容如下:
维塔所有=(所有)NOPASSWD:所有

3) mkdir/维塔

4) mkdir源构建工具cross-gcc-tmp sysroot

5)乔恩- r维塔。个人简历/维塔

6)/home/vita/.添加下面的内容bashrc

设置(朗
出口主机=i686-pc-linux-gnu
出口建立主机=$
出口目标=i686-none-linux-gnu
export CROSS_TOOL=/维塔/工具出口CROSS_GCC_TMP=
/维塔cross-gcc-tmp
export SYSROOT=/维塔SYSROOT
路径=$ CROSS_TOOL/bin: $ CROSS_GCC_TMP/bin:/sbin:/usr/sbin: $路径

7) su -维塔

2.2.4安装binutils

1) tar xvf . ./源/binutils-2.23.1.tar.bz2

2) mkdir binutils-build

3) cd binutils-build

4) . ./binutils-2.23.1/configure——prefix=$ CROSS_TOOL——目标=$目标——with-sysroot=$ SYSROOT

5)

6) make install

经过2.2.5独立交叉编译工具

1) cd/维塔/构建

2) tar xvf . .//gcc-4.7.2.tar来源。bz2
获取cd gcc-4.7.2/
tar xvf . ./. .//gmp-5.0.5.tar来源。bz2
获取mv gmp-5.0.5/gmp
tar xvf . ./. .//mpc-1.0.1.tar来源。广州
mv mpc-1.0.1/mpc
tar xvf . ./. .//mpfr-3.1.1.tar来源。bz2
获取mv mpfr-3.1.1/mpfr

cd/维塔/构建

mkdir gcc cd gcc

. ./gcc-4.7.2/configure——prefix=$ CROSS_GCC_TMP——目标=$目标——with-sysroot=$ SYSROOT——with-newlib enable-languages=c, with-mpfr-include=/维塔/构建/gcc-4.7.2/mpfr/src——with-mpfr-lib=/维塔/构建/gcc/mpfr/src/S哪猟isable-shared disable-threads——disable-decimal-float disable-libquadmath——disable-libmudflap disable-libgomp——disable-nls disable-libssp

让安装

cd/维塔/cross-gcc-tmp

ln - s libgcc。lib/gcc/i686-none-linux-gnu/4.7.2 libgcc_eh.a 2.2.6

。安装内核头文件

cd/维塔/构建

tar xvf . .//linux-3.7.4.tar来源。xz cd linux-3.7.4/

让mrproper

使拱=i386 headers_check

使拱SYSROOT美元=i386 INSTALL_HDR_PATH=/usr/headers_install

2.2.7编译对象系统C库

apt-get安装gawk

cd/维塔/构建

tar xvf . .//glibc-2.15.tar来源。xz

mkdir glibc-build cd glibc-build

. ./glibc 2.15/configure——prefix=/usr -主机目标——enable-kernel==$ 3.7.4——enable-add-ons with-headers=$ SYSROOT/usr/包括libc_cv_forced_unwind=是的libc_cv_c_cleanup=是的libc_cv_ctors_header=

让install_root=$ SYSROOT安装

2.2.8设置交叉编译器

cd/维塔/构建/gcc

rm rf *

. ./gcc-4.7.2/configure——prefix=$=$ CROSS_TOOL——目标目标——with-sysroot=$ SYSROOT with-mpfr-include=/维塔/构建/gcc-4.7.2/mpfr/src——with-mpfr-lib=/维塔/构建/gcc/mpfr/src/?狻猠nable-languages=c, c++, enable-threads=posix

使

make install

2.2.9设置环境变量

1)添加以下内容/home/vita/.bashrc

export CC=" $ TARGET-gcc "

export CXX=" $ TARGET-g + + "

export AR=" $ TARGET-ar "

出口作为=" $目标"

export RANLIB=" $ TARGET-ranlib "

export LD=" $ TARGET-ld "

出口地带=" $ TARGET-strip "

出口DESTDIR=$ SYSROOT

2)源/home/vita/.bashrc

2.2.10封装交叉pkg-config

1)下面的内容添加到. bashrc

设置PKG_CONFIG_PATH

出口PKG_CONFIG_LIBDIR=$ SYSROOT/usr/lib/pkgconfig: \

SYSROOT美元/usr/share/pkgconfig

2)添加文件/维塔/工具/bin/pkg-config

<李>

<李>

<李>

<李>

<李>

<李>

<李>

<李>

<李>

<李>

<李>

<李>

<李>

<李>

<李>

<李>

<李>

<李>

<李>

<李>

3) chmod + x/维塔/工具/bin/pkg-config

. 2.2.11处理libtool

找到SYSROOT美元- name”*。腊”- rm - f“{}”\;

2.2.12开始代码

foo。c

# include


空白myinit (int命令行参数个数,char * * argv, char * * envp)

{

printf (" % s \ n " __FUNCTION__);}


__attribute__ (((“.init_array”))节)typeof (myinit) * _myinit=myinit;


空白测试()

{

printf (" % s \ n " __FUNCTION__);}


栏。c

# include


void main ()

第二个工具链