红联Linux门户
Linux帮助

重新编译GCC-4.3.0

发布时间:2008-07-09 00:06:29来源:红联作者:Courage
GCC是Unix下的程序编译器的集合,包括C,C++,Fortran77,Java等,升级GCC有助于缩短编译过程的时间,生成更加高效的程序,但是也可能会出现编译后的程序比较大.目前最新的版本是4.3.接下来就开始安装4.3版本.

首先要确认,你的Unix环境有那些编译语言.本人所用的系统为RedHat AS 4.0 U6版本

#gcc -v
Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.3/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-java-awt=gtk --host=i386-redhat-linux
Thread model: posix
gcc version 3.4.3 20041212 (Red Hat 3.4.3-9.EL4)
显示GCC的版本信息.

GCC环境可以不包含任何编译器,默认安装中会安装上C,C++,g77和Java.一般在升级GCC和编译器时需要用户指定升级那些编译器,本次将着重介绍升级C和C++的编译器,其中包括g95.g95即Fortran语言的最新版,很多时候,源码依然调用g77进行编译.

#gcc
gcc: no input files
# c++
c++: no input files
# g77
g77: no input files
说明c,c++,g77集成在GCC中

# java
-bash: java: command not found
这个表示没有安装上

安装GCC需要先安装mpfr和gmp (Fortran编译器需要这两个包)
先卸载.
# rpm -qa |grep gmp
gmp-devel-4.1.4-3
gmp-4.1.4-3

# rpm -e --nodeps gmp-devel-4.1.4-3
# rpm -e --nodeps gmp-4.1.4-3

# wget ftp://ftp.gnu.org/gnu/gmp/gmp-4.2.2.tar.bz2
# tar jxf gmp-4.2.2.tar.bz2
# cd gmp-4.2.2
# ./configure --prefix=/usr --enable-cxx \
--enable-mpbsd
#make
#make install

# wget http://svn.cross-lfs.org/svn/repos/patches/mpfr/mpfr-2.3.1-cumulative-1.patch
# wget http://www.mpfr.org/mpfr-current/mpfr-2.3.1.tar.bz2
# tar jxf mpfr-2.3.1.tar.bz2
# cd mpfr-2.3.1
# patch -Np1 -Z -i ../mpfr-2.3.1-cumulative-1.patch
# ./configure --prefix=/usr --enable-shared
# make
# make install

安装g95
# wget http://ftp.g95.org/g95-x86-linux.tgz
# tar zxf g95-x86-linux.tgz
# cp g95-install/bin/i686-suse-linux-gnu-g95 /usr/bin/g95

接下来开始安装gcc了,这里不建议彻底删除老版本的gcc,只需要把gcc指向到新的版本就行了.这样仍然可以使用老版本的gcc.

# wget http://ftp.gnu.org/gnu/gcc/gcc-4.3.0/gcc-4.3.0.tar.bz2
# tar jxf gcc-4.3.0.tar.bz2
# cd gcc-4.3.0
# sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in
# mkdir -v ../gcc-build
# cd ../gcc-build
# ../gcc-4.3.0/configure --prefix=/usr \
--libdir=/usr/lib \
--libexecdir=/usr/lib \
--enable-shared \
--enable-threads=posix \
--enable-__cxa_atexit \
--enable-c99 \
--enable-long-long \
--enable-clocale=gnu \
--disable-libstdcxx-pch \
--disable-multilib \
--enable-languages=c,c++,f95

如果在--enable-languages=中添加了本来没有的语言make的过程中会报错.

# make bootstrap
# make -k check
# ../gcc-4.3.0/contrib/test_summary
# make install
# ln -sfv ../usr/bin/cpp /lib
# ln -sfv gcc /usr/bin/cc
# chown -Rv root:root /usr/lib/gcc/$(gcc -dumpmachine)/4.3.0/include
# ln -sfv `find /usr/lib/gcc -name ffitarget.h` /usr/include

完成后查看gcc
# gcc -v
[root@mailserver ~]# gcc -v
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: ../gcc-4.3.0/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-c99 --enable-long-long --enable-clocale=gnu --disable-libstdcxx-pch --disable-multilib --enable-languages=c,c++,f95
Thread model: posix
gcc version 4.3.0 (GCC)
文章评论

共有 0 条评论