安装 GCC-3.2

估计编译时间:		13.26 SBU
估计所需硬盘空间:     221 MB

安装 GCC

你必须先打补丁,才能安装这个包。确认在运行下面的命令前,补丁已经解压了。

如果你把这个包缺省的优化参数(包括 -march 和 -mcpu参数)改变的话,它会有很不良的表现。最好不要优化这个包。因此,如果你定义了任何优化参数的话,比如CFLAGS 和 CXXFLAGS,我们劝你在编译GCC时unset或修改它们。警告过了哦!

下面的命令将安装 C和C++ 编译器,所以你需要解压 gcc-core和gcc-g++两个压缩包。gcc包里还有其它的编译器,编译它们的指导请看 http://beyond.us.linuxfromscratch.orgview/cvs/general/gcc.html

patch -Np1 -i ../gcc-3.2.patch &&
mkdir ../gcc-build &&
cd ../gcc-build &&
../gcc-3.2/configure --prefix=/usr --enable-shared \
    --enable-threads=posix --with-slibdir=/lib \
    --enable-__cxa_atexit --enable-clocale=gnu &&
make bootstrap &&
make install &&
ln -s ../usr/bin/cpp /lib &&
ln -s ../bin/cpp /usr/lib &&
ln -s gcc /usr/bin/cc

命令解释

--enable-threads=posix: 这使 C++ 异常处理能处理多线程代码。

--enable-__cxa_atexit: 这个参数使 C++ 共享库和 C++ 程序能与其它 Linux 发行版相互操作。

--enable-clocale=gnu: 如果没有安装所有的 glibc localedata,有些人会编译出 ABI 不兼容的 C++ 库。使用 --enable-clocale=gnu 保证在所有情况下都能做出“正确”的事。如果你不打算用这个参数,那么你应该至少安装上 de_DE 这个 locale 。当 GCC 找到这个特定的 locale 时,就能使用正确的 locale 模式(gnu)。

GCC的内容

最后检查于 version 3.1.

包含的程序

c++, c++filt, cc (link to gcc), cc1, cc1plus, collect2, cpp, cpp0, g++, gcc, gccbug, gcov 和 tradcpp0

具体说明

cc, cc1, cc1plus, gcc

都是C编译器. 编译器的功能是将文本格式的源代码编译成计算机能够理解的格式。源代码文件编译成目标文件后,目标代码连接器就会根据这个编译器产生的一个或多个目标文件产生一个可执行文件。

c++, cc1plus, g++

C++ 编译器

c++filt

C++支持函数重载. 也就是可以把很多函数写作同样一个函数名(每个的参数类型不一样). 所有C++函数名都被编码为低级汇编标识(识别编码). c++filt程序将这些编码解码成用户级的函数名,以至于这些重载函数不会互相冲突.

collect2

collect2 协助对结构体的编译

cpp, cpp0

cpp 对源码的预处理程序. 预处理程序或称编译预处理器实现对源代码进行编译前的预处理,例如将源代码中指定的头文件包含进来。通过头文件声明引入代码是一个节省编程时间的非常好的思想。您可以仅仅通过在代码头中插入类似#include <filename>的代码,预处理器就可以将您指定的文件的全部内容插入到需要编译的源代码中。

gccbug

gccbug 用来简化bug报告的脚本

gcov

gcov 分析程序以产生更高效快速的代码

tradcpp0

目前还没有描述

包含的库文件

libgcc.a, libgcc_eh.a, libgcc_s.so, libiberty.a, libstdc++.[a,so], libsupc++.a

具体说明

libgcc, libgcc_eh, libgcc_s

gcc运行时将用到

libiberty

包含一些被GNU程序用到的子程序, 例如getopt, obstack, strerror, strtol and strtoul.

libstdc++

C++ 库文件. C++库是C++程序所使用的,C++库包括C++程序中经常使用的函数,这样就可以保证程序员不必要在每次编写新的程序时都重新些某些特定的通用函数(如将文本输出到终端屏幕的函数)。

libsupc++

libsupc++ 提供对 c++ 程序的支持.

安装GCC依赖于

最后检查于 version 2.95.3.

Bash: sh
Binutils: ar, as, ld, nm, ranlib
Diffutils: cmp
Fileutils: chmod, cp, ln, ls, mkdir, mv, rm, touch
Find: find
Gcc: cc, cc1, collect2, cpp0, gcc
Grep: egrep, grep
Make: make
Patch: patch
Sed: sed
Sh-utils: basename, dirname, echo, expr, hostname, sleep, true, uname
Tar: tar
Texinfo: install-info, makeinfo
Textutils: cat, tail, tr