预计所需编译时间: 11.7 SBU 预计所需硬盘空间: 294 MB |
GCC 软件包包含 GNU 编译器,其中有C和C++编译器.
安装下列程序: c++, cc (link to gcc), cc1, cc1plus, collect2, cpp, g++, gcc, gccbug, 和 gcov
安装下列库文件: libgcc.a, libgcc_eh.a, libgcc_s.so, libstdc++.[a,so] 和 libsupc++.a
GCC 依赖于: Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo.
注: 本节的GCC测试套件很重要。我们建议在任何情况下都别省略这一步。
如果你把这个包缺省的优化参数(包括 -march 和 -mcpu参数)改变的话,它会有很不良的表现。最好不要优化这个包。因此,如果你定义了任何优化参数的话,比如CFLAGS 和 CXXFLAGS,我们劝你在编译GCC时unset或修改它们。
我们在这里将安装 C 和C++ 编译器,所以你需要解压 gcc-core和gcc-g++到同一目录中。你还需要解压GCC-testsuite软件包到相同目录里。完整的 gcc 软件包里还有其它的编译器,编译它们的指导请看 http://www.linuxfromscratch.org/blfs/view/stable/general/gcc.html.
注: 注意,这里不要 运用第五章里的specs补丁。
首先,运用前一章里用过的 No-Fixincludes 补丁:
patch -Np1 -i ../gcc-3.3.2-no_fixincludes-1.patch |
现在运用一个补丁,它禁止安装libiberty.a。我们将使用Binutils带的libiberty.a:
sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in |
GCC 的安装指南推荐用一个新建的目录来编译它,而不是在源码目录中:
mkdir ../gcc-build cd ../gcc-build |
为编译 GCC 做准备:
../gcc-3.3.2/configure --prefix=/usr \ --enable-shared --enable-threads=posix \ --enable-__cxa_atexit --enable-clocale=gnu \ --enable-languages=c,c++ |
编译软件包:
make |
运行测试套件,但遇到错误不停止(你还记得那些老是出错的测试吧):
make -k check |
the 节 called 安装 GCC-3.3.2 - 第二遍 在 第 5 章里的测试套件说明对这里也同样适用,请参考一下前面的内容。
安装软件包:
make install |
有的软件包希望 C PreProcessor(预处理器)安装在 /lib 目录下,为了满足它们的要求,创建符号链接:
ln -s ../usr/bin/cpp /lib |
许多软件包使用 cc 作为 C 编译器的名字,为了满足它们的要求,创建一个 cc 符号链接:
ln -s gcc /usr/bin/cc |
注: 这里,我们强烈推荐运行一下本章前面进行过的合理性测试。看看the 节 called 再次调整工具链并重复测试。如果结果错了,可能是因为你使用了第五章的GCC Specs补丁。