質問: centosにgcc5 +をインストールする方法 gcc 4.1.2を備えたcentos5マシンを使用しています。いくつかのc++ 14機能を試してみたいので、デフォルト以外の場所に gcc 5 をインストールしたいと思います。これに取り組むための最良の方法は何ですか?たとえば、gcc 4.7または4.8の場合、 centosにgcc 4.7.x/4.8.xをインストールする方法 の質問と回答が役立ちます。そのアプローチでは、最新の redhat開発者ツールセット、v 3.1ベータ版 にはgcc4.9.2があるようです。[追記:centosのバージョンを変更することは私には選択肢ではありません。]
回答: centos 5にgcc-5をインストールすることは不可能だと思います。そのglibcバージョン(2.5)は古すぎます。centos 6の場合は、次の手順を使用します。 http://en.librehat.com/blog/build-gcc-5-dot-2-on-rhel-6/ http://www.linuxfromscratch.org/blfs/view/cvs/general/gcc.html または、次のdockerfileでdockerを使用できます。from centos:centos6 run yum install -y gcc gcc-c++ wget xz libgcc glibc-devel glibc-headers # run some tests run gcc --version && \ g++ --version && \ which gcc && \ which g++ run mkdir ~/tests && \ cd ~/tests && \ echo '#include <iostream>' > main.cpp && \ echo 'using namespace std;' >> main.cpp && \ echo 'int main() {' >> main.cpp && \ echo ' cout << "hello world!" << endl;' >> main.cpp && \ echo ' return 0;' >> main.cpp && \ echo '}' >> main.cpp && \ g++ main.cpp -o main && \ ./main # download and compile gcc-5 # http://en.librehat.com/blog/build-gcc-5-dot-2-on-rhel-6/ # download and extract source code env gcc_version "5.3.0" run wget --no-verbose \ http://ftpmirror.gnu.org/gcc/gcc-${gcc_version}/gcc-${gcc_version}.tar.bz2 && \ tar xf gcc-${gcc_version}.tar.bz2 run wget --no-verbose \ https://gmplib.org/download/gmp/gmp-6.1.0.tar.xz && \ tar xf gmp-6.1.0.tar.xz && \ mv gmp-6.1.0 gcc-${gcc_version}/gmp run wget --no-verbose \ ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz && \ tar xf mpc-1.0.3.tar.gz && \ mv mpc-1.0.3 gcc-${gcc_version}/mpc run wget --no-verbose \ http://www.mpfr.org/mpfr-current/mpfr-3.1.4.tar.xz && \ tar xf mpfr-3.1.4.tar.xz && \ mv mpfr-3.1.4 gcc-${gcc_version}/mpfr # compile and install gcc # "we highly recommend that gcc be built into a separate directory from the sources which does not reside within the source tree" run mkdir gcc-${gcc_version}_build && \ cd gcc-${gcc_version}_build && \ ../gcc-${gcc_version}/configure \ --prefix=/usr \ --disable-multilib \ --enable-languages=c,c++ \ --enable-libstdcxx-threads \ --enable-libstdcxx-time \ --enable-shared \ --enable-__cxa_atexit \ --disable-libunwind-exceptions \ --disable-libada \ --host x86_64-redhat-linux-gnu \ --build x86_64-redhat-linux-gnu \ --with-default-libstdcxx-abi=gcc4-compatible run cd gcc-${gcc_version}_build && make -j4 run cd gcc-${gcc_version}_build && make install # validate the installed compiler run hash -r && \ gcc --version && \ g++ --version && \ which gcc && \ which g++ # register new libraries with `ldconfig` run echo "/usr/local/lib64" > usrlocallib64.conf && \ mv usrlocallib64.conf /etc/ld.so.conf.d/ && \ ldconfig # clean out all the garbage run rm -rf ~/${gcc_release} ~/{gcc_release}_build ~/tests