估计编译时间: 13.26 SBU 估计所需硬盘空间: 221 MB |
你必须先打补丁,才能安装这个包。确认在运行下面的命令前,补丁已经解压了。
如果你把这个包缺省的优化参数(包括 -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)。
最后检查于 version 3.1.
c++, c++filt, cc (link to gcc), cc1, cc1plus, collect2, cpp, cpp0, g++, gcc, gccbug, gcov 和 tradcpp0
都是C编译器. 编译器的功能是将文本格式的源代码编译成计算机能够理解的格式。源代码文件编译成目标文件后,目标代码连接器就会根据这个编译器产生的一个或多个目标文件产生一个可执行文件。
C++支持函数重载. 也就是可以把很多函数写作同样一个函数名(每个的参数类型不一样). 所有C++函数名都被编码为低级汇编标识(识别编码). c++filt程序将这些编码解码成用户级的函数名,以至于这些重载函数不会互相冲突.
最后检查于 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