configure: error: *** A compiler with support for C++11 language features is required.
參考鏈接:
(1)升級 GCC 支持C++11。
(2)解決/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found的問題方法總結。
一、錯誤發生情景:
使用sh setup.sh安裝軟件時,報以下錯誤:
... configure: error: *** A compiler with support for C++11 language features is required. --- ERROR: failed to configure xapian-core-scws, see 'setup.log' for more detail
二、錯誤原因:
gcc版本太低了
三、解決問題:
(1)查看當前的gcc版本:
gcc -v
結果:gcc 版本 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC)
(2)下載高版本的gcc:
wget ftp://ftp.irisa.fr/pub/mirrors/gcc.gnu.org/gcc/releases/gcc-8.3.0/gcc-8.3.0.tar.gz
(3)解壓:
tar -zxvf gcc-8.3.0.tar.gz
(4)進入目錄
cd gcc-8.3.0
(5)配置
./configure --prefix=/usr/local/gcc-8.3.0 --enable-checking=release --enable-languages=c,c++ --disable-multilib
注意,如果出現錯誤以下錯誤:
... configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+. ...
請看文章底部的錯誤解決方法。
(6)編譯
make
(7)安裝
make install
(8)查看版本
gcc -v
如果發現版本沒有變化,
可以刪除舊版本的gcc,如果舊版的是用yum安裝的,可以使用yum remove gcc。
然后把新安裝的gcc的bin目錄添加到環境變量中,/etc/pfofile文件中。
再查看版本,是否已變成最新安裝的版本。
(9)更新標准庫
(這一步,應該是需要的,gcc升級后,標准庫還是舊的,可能影響一些編譯操作。)
1、進入到剛才安裝新的GCC的目錄中:cd /usr/local/gcc-8.3.0
2、進入到庫目錄:cd lib64 (注意:系統如果是64位的就進入到lib64目錄,否則進入到lib目錄)
3、查看當前庫的最搭版本:ls,結果看到:libstdc++.so.6.0.25
4、復制到系統默認的庫目錄下:
cp libstdc++.so.6.0.25 /usr/lib64/ (注意:系統如果是32:cp libstdc++.so.6.0.25 /usr/lib/)
5、進入到/usr/lib64下,查看相關的版本信息:
ls -l | grep libstdc++
結果:
... libstdc++.so.6 -> libstdc++.so.6.0.13
... libstdc++.so.6.0.13
... libstdc++.so.6.0.25
6、刪除舊的軟連接:
rm -f libstdc++.so.6
7、建立新的軟連接:
ln -s libstdc++.so.6.0.25 libstdc++.so.6
8、查看標准庫最新的版本:
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
GLIBCXX_3.4 GLIBCXX_3.4.1 . . . GLIBCXX_3.4.24 GLIBCXX_3.4.25 GLIBCXX_FORCE_NEW GLIBCXX_DEBUG_MESSAGE_LENGTH
可以看到,已更新到最新的25版本。
可能遇見的錯誤:
在執行.configure命令時,可能遇到以下錯誤:
...省略 configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+. Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify their locations. Source code for these libraries can be found at their respective hosting sites as well as at ftp://gcc.gnu.org/pub/gcc/infrastructure/. See also http://gcc.gnu.org/install/prerequisites.html for additional info. If you obtained GMP, MPFR and/or MPC from a vendor distribution package, make sure that you have installed both the libraries and the header files. They may be located in separate packages.
錯誤說明,安裝gcc需要這三個依賴:GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+。
錯誤中還指出了下載頁面的地址:ftp://gcc.gnu.org/pub/gcc/infrastructure/。
1、打開鏈接:ftp://gcc.gnu.org/pub/gcc/infrastructure/。
2、找到需要的三個包地址,下載下來:
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz
3、安裝GMP:
tar -jxvf gmp-6.1.0.tar.bz2 cd gmp-6.1.0 ./configure make && make install
4、安裝MPFR:
tar -jxvf mpfr-3.1.4.tar.bz2 cd mpfr-3.1.4 ./configure make && make install
5、安裝MPC:
tar -zxvf mpc-1.0.3.tar.gz cd mpc-1.0.3 ./configure make && make install