第五章 预工具链的创建

来源:互联网 发布:淘宝怎样批量上传宝贝 编辑:程序博客网 时间:2024/06/05 21:16


1.进入 LFS 包编译目录

cd $LFS/sources


2.汇编链接器 binutils-2.17-pass1

tar xvf /lfs-sources/binutils-2.17.tar.bz2cd binutils-2.17
后面所有的安装包的解压都用这种方式 tar xvf

然后进入解压出来的安装包目录


mkdir -v ../binutils-buildcd ../binutils-buildCC="gcc -B/usr/bin/" ../binutils-2.17/configure --prefix=/tools --disable-nls --disable-werrormakemake installmake -C ld cleanmake -C ld LIB_PATH=/tools/libcp -v ld/ld-new /tools/bincd ..rm -rf binutils-buildrm -rf binutils-2.17
在 binutils 编译要求中,不建议在源代码目录中进行编译,因此需要建立一个临时目录进行编译工作

  • CC="gcc -B/usr/bin/" 可以保证使用主系统的工具链来编译本次 binutils
  • ../binutils-2.17/configure 本系统制作所涉及到的软件包一般都采用 configure 的方式来配置
  • --prefix=/tools 用来指定软件编译安装的主目录
  • --disable-nls 表示不安装国际化功能,通过这句屏蔽该功能
  • make 一般的编译过程使用的命令
  • make install 一般的安装过程使用的命令
  • make -C ld clean ;make -C ld LIB_PATH=/tools/lib 这里重新编译 ld 命令,以后这个 ld 命令将会使用 /tools/lib 来进行库的连接工作
  • cp -v ld/ld-new /tools/bin 将 ld 命令暂时放在 /tools/bin 目录中,因为目前 /tools/lib 还未准备完全


3.编译器 gcc-4.1.2-pass1

tar xvf /lfs-sources/gcc-4.1.2.tar.bz2mkdir -v gcc-buildcd gcc-buildCC="gcc -B/usr/bin/" ../gcc-4.1.2/configure --prefix=/tools \    --with-local-prefix=/tools --disable-nls \    --enable-shared --enable-languages=cmake bootstrapmake installln -vs gcc /tools/bin/cccd ..rm -rf gcc-buildrm -rf gcc-4.1.2
从 gcc-4.4 版本开始,需要先安装 GMP 和 MPFR 两个软件包

  • --enable-languages=c 是 gcc 特有的参数,用来告诉 gcc 需要编译的语言支持,在这个预工具链中,我们只需要C语言的支持就够了
  • make bootstrap gcc的编译使用 bootstrap 方式来进行的,该编译方式对编译产生 gcc 的正确性有一定的保证
  • ln -vs gcc /tools/bin/cc 该作用是在 /tools/bin 中建立一个 cc 并指向本目录中的 gcc 文件,原因是有些软件的编译过程使用 cc 命令来进行 C 语言的编译,为了兼容这些软件


原创粉丝点击