相关参考:
centos6.6 安装gcc 5.2.0 设置g++ 支持c++ 11特性
http://blog.csdn.net/xiaolongwang2010/article/details/47708913
Centos7编译安装GCC7.2
http://blog.csdn.net/hificamera/article/details/77366931
1、安装gcc相关的基本编译工具
yum install gcc gcc-c++ glibc-static –y
2、下载、编译、安装方式一:
下载链接:https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-7.2.0/gcc-7.2.0.tar.xz(清华大学开源软件镜像站)
步骤:
cd #进入家目录
wget https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-7.2.0/gcc-7.2.0.tar.xz #下载源码包
tar -xvf gcc-7.2.0.tar.xz #解压
cd gcc-7.2.0/
./contrib/download_prerequisites #下载相关依赖
./configure --prefix=/usr --enable-languages=c,c++ --disable-multilib #安装路径在/usr下,与通过yum安装位置一致,不好管理,可通过yum安装其他版本来覆盖。
make -j4 # 4个线程同时编译,等50分钟左右 。
sudo make install #安装
3、下载、编译、安装方式二:
到清华大学开源软件镜像站里gun目录下找gcc、gmp、mpfr、mpc源码包
gmp-6.1.2.tar.xz 下载地址: https://mirrors.tuna.tsinghua.edu.cn/gnu/gmp/gmp-6.1.2.tar.xz
mpfr-3.1.6.tar.xz 下载地址: https://mirrors.tuna.tsinghua.edu.cn/gnu/mpfr/mpfr-3.1.6.tar.xz
mpc-1.0.3.tar.gz 下载地址: https://mirrors.tuna.tsinghua.edu.cn/gnu/mpc/mpc-1.0.3.tar.gz
gcc-7.2.0.tar.xz 下载地址: https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-7.2.0/gcc-7.2.0.tar.xz
1)安装gmp-6.1.2
cd
wget -c https://mirrors.tuna.tsinghua.edu.cn/gnu/gmp/gmp-6.1.2.tar.xz
tar xvf gmp-6.1.2.tar.xz
cd gmp-6.1.2/
mkdir build
cd build/
../configure --prefix=/usr/local/gcc/gmp-6.1.2
make -j2
make install
cd
rm -rvf gmp-6.1.2/ #安装后删除
2)安装mpfr-3.1.6 (最新4.0,但与其他包冲突)
cd
wget -c https://mirrors.tuna.tsinghua.edu.cn/gnu/mpfr/mpfr-3.1.6.tar.xz
tar xvf mpfr-3.1.6.tar.xz
cd mpfr-3.1.6/
mkdir build
cd build/
../configure --prefix=/usr/local/gcc/mpfr-3.1.6 --with-gmp=/usr/local/gcc/gmp-6.1.2
make -j2
make install
cd
rm -rvf mpfr-3.1.6/
3)安装mpc-1.0.3
cd
wget -c https://mirrors.tuna.tsinghua.edu.cn/gnu/mpc/mpc-1.0.3.tar.gz
tar zxvf mpc-1.0.3.tar.gz
cd mpc-1.0.3/
mkdir build
cd build/
../configure --prefix=/usr/local/gcc/mpc-1.0.3 --with-mpfr=/usr/local/gcc/mpfr-3.1.6 --with-gmp=/usr/local/gcc/gmp-6.1.2
make -j2
wget -c https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-7.2.0/gcc-7.2.0.tar.xz
tar xvf gcc-7.2.0.tar.xz
cd gcc-7.2.0/
mkdir build
cd build/
../configure --prefix=/usr/local/gcc/gcc-7.2.0 --enable-threads=posix --disable-checking --enable-languages=c,c++ --disable-multilib --with-gmp=/usr/local/gcc/gmp-6.1.2 --with-mpfr=/usr/local/gcc/mpfr-3.1.6 --with-mpc=/usr/local/gcc/mpc-1.0.3
make #不要用多核编译,电脑性能不好的容易编译一半出错。
make install
cd
rm -rvf gcc-7.2.0/
5)完善配置
修改默认版本
gcc -v # 得到旧版为gcc-4.8.5
mv /bin/gcc /bin/gcc-4.8.5
mv /bin/g++ /bin/g++-4.8.5
链接到新版本
ln -svf /usr/local/gcc/gcc-7.2.0/bin/gcc /bin/gcc
ln -svf /usr/local/gcc/gcc-7.2.0/bin/g++ /bin/g++
如不需要旧版可使用yum卸载:
yum remove gcc gcc-c++
添加man帮助:vi /etc/man.config,添加gcc的man路径到配置文件中:
MANPATH /usr/local/gcc/gcc-7.2.0/share/man
保存退出即可生效,可使用man gcc查看帮助
添加共享库路径,编辑ld.so.conf文件:vi /etc/ld.so.conf
添加如下内容到文件中:
/usr/local/gcc/gmp-6.1.2/lib
/usr/local/gcc/mpfr-3.1.6/lib
/usr/local/gcc/mpc-1.0.3/lib
/usr/local/gcc/gcc-7.2.0/lib
保存退出,执行ldconfig命令
6)更新动态链接库版本
查看原来版本:
ls -al /lib64/libstdc++.so.6
strings /lib64/libstdc++.so.6 | grep GLIBCXX
查看新安装版本:
ls -al /usr/local/gcc/gcc-7.2.0/lib64/ | grep libstdc++.so.6
我安装的gcc-7.2.0对应版本为:libstdc++.so.6.0.24
更新版本:
cp /usr/local/gcc/gcc-7.2.0/lib64/libstdc++.so.6.0.24 /lib64/
ln -svf /lib64/libstdc++.so.6.0.24 /lib64/libstdc++.so.6
确认更新结果:
strings /lib64/libstdc++.so.6 | grep GLIBCXX
4、设置gcc-7.2.0 支持c++ 11
在编译选项中加 -std=c++0x –Wall 或者 -std=c++11
g++ test.cpp -o test.out -std=c++0x -Wall
最后那个是编译警告,初学打开比较好
gcc目前需要添加-std=c++0x 才能顺利编译c++11新特性
或者用alias
对当前系统下次重启前 临时生效:
alias g++=’g++ -std=c++0x’
或者想让它永久生效,则写入/etc/bashrc 文件中
vim /etc/bashrc,添加:
alias g++=’g++ -std=c++0x –Wall’
附:源码包解压缩指令
解压指令:
所有格式可直接如下方式解压:tar -xvf xx.tar.xx -C 目标路径
tar.gz 格式解压为 tar -zxvf xx.tar.gz
tar.bz2 格式解压为 tar -jxvf xx.tar.bz2
tar.xz 格式解压为 tar -Jxvf xx.tar.xz
压缩指令:
tar -zcvf xx.tar.gz 压缩打包为 tar.gz 格式
tar -jcvf xx.tar.bz2 压缩打包为 tar.bz2 格式
tar -Jcvf xx.tar.xz 压缩打包为 tar.xz 格式
centos6.6 安装gcc 5.2.0 设置g++ 支持c++ 11特性
http://blog.csdn.net/xiaolongwang2010/article/details/47708913
Centos7编译安装GCC7.2
http://blog.csdn.net/hificamera/article/details/77366931
1、安装gcc相关的基本编译工具
yum install gcc gcc-c++ glibc-static –y
2、下载、编译、安装方式一:
下载链接:https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-7.2.0/gcc-7.2.0.tar.xz(清华大学开源软件镜像站)
步骤:
cd #进入家目录
wget https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-7.2.0/gcc-7.2.0.tar.xz #下载源码包
tar -xvf gcc-7.2.0.tar.xz #解压
cd gcc-7.2.0/
./contrib/download_prerequisites #下载相关依赖
./configure --prefix=/usr --enable-languages=c,c++ --disable-multilib #安装路径在/usr下,与通过yum安装位置一致,不好管理,可通过yum安装其他版本来覆盖。
make -j4 # 4个线程同时编译,等50分钟左右 。
sudo make install #安装
3、下载、编译、安装方式二:
到清华大学开源软件镜像站里gun目录下找gcc、gmp、mpfr、mpc源码包
gmp-6.1.2.tar.xz 下载地址: https://mirrors.tuna.tsinghua.edu.cn/gnu/gmp/gmp-6.1.2.tar.xz
mpfr-3.1.6.tar.xz 下载地址: https://mirrors.tuna.tsinghua.edu.cn/gnu/mpfr/mpfr-3.1.6.tar.xz
mpc-1.0.3.tar.gz 下载地址: https://mirrors.tuna.tsinghua.edu.cn/gnu/mpc/mpc-1.0.3.tar.gz
gcc-7.2.0.tar.xz 下载地址: https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-7.2.0/gcc-7.2.0.tar.xz
1)安装gmp-6.1.2
cd
wget -c https://mirrors.tuna.tsinghua.edu.cn/gnu/gmp/gmp-6.1.2.tar.xz
tar xvf gmp-6.1.2.tar.xz
cd gmp-6.1.2/
mkdir build
cd build/
../configure --prefix=/usr/local/gcc/gmp-6.1.2
make -j2
make install
cd
rm -rvf gmp-6.1.2/ #安装后删除
2)安装mpfr-3.1.6 (最新4.0,但与其他包冲突)
cd
wget -c https://mirrors.tuna.tsinghua.edu.cn/gnu/mpfr/mpfr-3.1.6.tar.xz
tar xvf mpfr-3.1.6.tar.xz
cd mpfr-3.1.6/
mkdir build
cd build/
../configure --prefix=/usr/local/gcc/mpfr-3.1.6 --with-gmp=/usr/local/gcc/gmp-6.1.2
make -j2
make install
cd
rm -rvf mpfr-3.1.6/
3)安装mpc-1.0.3
cd
wget -c https://mirrors.tuna.tsinghua.edu.cn/gnu/mpc/mpc-1.0.3.tar.gz
tar zxvf mpc-1.0.3.tar.gz
cd mpc-1.0.3/
mkdir build
cd build/
../configure --prefix=/usr/local/gcc/mpc-1.0.3 --with-mpfr=/usr/local/gcc/mpfr-3.1.6 --with-gmp=/usr/local/gcc/gmp-6.1.2
make -j2
make install
cd
rm -rvf mpc-1.0.3/
wget -c https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-7.2.0/gcc-7.2.0.tar.xz
tar xvf gcc-7.2.0.tar.xz
cd gcc-7.2.0/
mkdir build
cd build/
../configure --prefix=/usr/local/gcc/gcc-7.2.0 --enable-threads=posix --disable-checking --enable-languages=c,c++ --disable-multilib --with-gmp=/usr/local/gcc/gmp-6.1.2 --with-mpfr=/usr/local/gcc/mpfr-3.1.6 --with-mpc=/usr/local/gcc/mpc-1.0.3
make #不要用多核编译,电脑性能不好的容易编译一半出错。
make install
cd
rm -rvf gcc-7.2.0/
5)完善配置
修改默认版本
gcc -v # 得到旧版为gcc-4.8.5
mv /bin/gcc /bin/gcc-4.8.5
mv /bin/g++ /bin/g++-4.8.5
链接到新版本
ln -svf /usr/local/gcc/gcc-7.2.0/bin/gcc /bin/gcc
ln -svf /usr/local/gcc/gcc-7.2.0/bin/g++ /bin/g++
如不需要旧版可使用yum卸载:
yum remove gcc gcc-c++
添加man帮助:vi /etc/man.config,添加gcc的man路径到配置文件中:
MANPATH /usr/local/gcc/gcc-7.2.0/share/man
保存退出即可生效,可使用man gcc查看帮助
添加共享库路径,编辑ld.so.conf文件:vi /etc/ld.so.conf
添加如下内容到文件中:
/usr/local/gcc/gmp-6.1.2/lib
/usr/local/gcc/mpfr-3.1.6/lib
/usr/local/gcc/mpc-1.0.3/lib
/usr/local/gcc/gcc-7.2.0/lib
保存退出,执行ldconfig命令
6)更新动态链接库版本
查看原来版本:
ls -al /lib64/libstdc++.so.6
strings /lib64/libstdc++.so.6 | grep GLIBCXX
查看新安装版本:
ls -al /usr/local/gcc/gcc-7.2.0/lib64/ | grep libstdc++.so.6
我安装的gcc-7.2.0对应版本为:libstdc++.so.6.0.24
更新版本:
cp /usr/local/gcc/gcc-7.2.0/lib64/libstdc++.so.6.0.24 /lib64/
ln -svf /lib64/libstdc++.so.6.0.24 /lib64/libstdc++.so.6
确认更新结果:
strings /lib64/libstdc++.so.6 | grep GLIBCXX
4、设置gcc-7.2.0 支持c++ 11
在编译选项中加 -std=c++0x –Wall 或者 -std=c++11
g++ test.cpp -o test.out -std=c++0x -Wall
最后那个是编译警告,初学打开比较好
gcc目前需要添加-std=c++0x 才能顺利编译c++11新特性
或者用alias
对当前系统下次重启前 临时生效:
alias g++=’g++ -std=c++0x’
或者想让它永久生效,则写入/etc/bashrc 文件中
vim /etc/bashrc,添加:
alias g++=’g++ -std=c++0x –Wall’
附:源码包解压缩指令
解压指令:
所有格式可直接如下方式解压:tar -xvf xx.tar.xx -C 目标路径
tar.gz 格式解压为 tar -zxvf xx.tar.gz
tar.bz2 格式解压为 tar -jxvf xx.tar.bz2
tar.xz 格式解压为 tar -Jxvf xx.tar.xz
压缩指令:
tar -zcvf xx.tar.gz 压缩打包为 tar.gz 格式
tar -jcvf xx.tar.bz2 压缩打包为 tar.bz2 格式
tar -Jcvf xx.tar.xz 压缩打包为 tar.xz 格式