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 ()