在升級GCC時會遇到這個問題。 linux
解決方法以下: c++
從svn checkout svn://gcc.gnu.org/svn/gcc/trunk拿了GCC的最新代碼,打算編譯了學東西習學習C++ 11的東西,結果在configure的時候出現以下問題:
Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+
http://www.multiprecision.org/mpc 下載mpc-0.9.tar.gz
ftp://ftp.gnu.org/gnu/gmp/gmp-5.0.1.tar.bz2下載gmp-5.0.1.tar.bz2
http://ftp.gnu.org/gnu/mpfr/下載mpfr-3.1.0.tar.xz。
先開始安裝GMP。解壓GMP的壓縮包後,獲得源代碼目錄gmp-5.0.1。在該目錄的同級目錄下創建一個臨時的編譯目錄,這裏命名爲temp。而後開始配置安裝選項,進入temp目錄,輸入如下命令進行配置:
../gmp-5.0.1/configure --prefix=/usr/local/gmp-5.0.1
make
sudo make install
mpfr和mpc的安裝方法與gmp相似。不過要注意配置的時候要把gmp與mpfr的依賴關係選項加進去,具體配置命令以下:
../mpfr-3.1.0/configure --prefix=/usr/local/mpfr-3.1.0 --with-gmp=/usr/local/gmp-5.0.1
../mpc-0.9/configure --prefix=/usr/local/mpc-0.9 --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.0
安裝好這三個庫以後,就能夠正式開始安裝gcc了。
固然了連接的時候,須要剛剛編譯的3個lib。 要把這個放到.bashrc中,不然會出問題。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.9/lib:/usr/local/gmp-5.0.1/lib:/usr/local/mpfr-3.1.0/lib
而後是典型的configure,make,install三步曲。
../trunk/configure --prefix=/usr/local/gcc-4.7 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++
--with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.0 --with-mpc=/usr/local/mpc-0.9
make
make check(可選)
sudo make install
通過漫長的等待:
/usr/local/gcc-4.7/bin/g++ -v
使用內建 specs。
COLLECT_GCC=/usr/local/gcc-4.7/bin/g++
COLLECT_LTO_WRAPPER=/usr/local/gcc-4.7/libexec/gcc/x86_64-unknown-linux-gnu/4.7.0/lto-wrapper
目標:x86_64-unknown-linux-gnu
配置爲:../trunk/configure --prefix=/usr/local/gcc-4.7 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.0 --with-mpc=/usr/local/mpc-0.9
線程模型:posix
gcc 版本 4.7.0 20120113 (experimental) (GCC)
bash