<< Back to shouce.jb51.net

安装 GCC-3.3.2

预计所需编译时间:      11.7 SBU
预计所需硬盘空间:      294 MB

GCC的内容

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 安装依赖关系

GCC 依赖于: Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo.

安装 GCC

注: 本节的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补丁。