歡迎您光臨本站 註冊首頁

重新編譯GCC-4.3.0

←手機掃碼閱讀     火星人 @ 2014-03-26 , reply:0

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/rep ... -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)

[火星人 ] 重新編譯GCC-4.3.0已經有886次圍觀

http://coctec.com/docs/linux/show-post-186297.html