阅读本文大概需要 3 分钟。
本文采用docker方式搭建容器环境,在容器中安装c++编译环境;安装完后登录docker容器,就可以愉快地玩耍了。
拉取镜像
docker pull centos:7
启动容器
docker run -it -v `pwd`:/app centos:7 /bin/bash
下载常用软件
yum install wget bzip2 vim
安装gcc
yum install gcc gcc-c++ gcc-gnat libgcc libgcc.i686 glibc-devel bison flex texinfo build-essential zlib-devel
gcc --version
安装gcc其他版本
需要先有gcc,因为要编译;低版本有一些特性不支持
cd /usr/local/src
# 安装其他gcc,只需替换版本号即可
wget https://ftp.gnu.org/gnu/gcc/gcc-10.2.0/gcc-10.2.0.tar.gz
tar zxf gcc-10.2.0
cd gcc-10.2.0
# 下载依赖
./contrib/download_prerequisites
# 依赖包
gmp-6.1.0.tar.bz2
isl-0.18.tar.bz2
mpc-1.0.3.tar.gz
mpfr-3.1.4.tar.bz2
# 依赖包编译
cd gmp-6.1.0
./configure --prefix=/opt/compiler/gmp-6.1.0
make && make install
cd mpfr-3.1.4
./configure --prefix=/opt/compiler/mpfr-3.1.4 --with-gmp=/opt/compiler/gmp-6.1.0
make && make install
cd mpc-1.0.3
./configure --prefix=/opt/compiler/mpc-1.0.3 --with-gmp=/opt/compiler/gmp-6.1.0 --with-mpfr=/opt/compiler/mpfr-3.1.4
make && make install
# 若报错:configure: error: gmp.h header not found, 执行命令:yum -y install gmp-devel
./configure --prefix=/opt/compiler/isl-0.18 --with-gmp=/opt/compiler/gmp-6.1.0
make && make install
# 添加动态链接库
ll /opt/compiler/ | grep -v total | awk '{print "/opt/compiler/"$NF"/lib"}'
vim /etc/ld.so.conf (添加如下内容)
/opt/compiler/gmp-6.1.0/lib
/opt/compiler/isl-0.18/lib
/opt/compiler/mpc-1.0.3/lib
/opt/compiler/mpfr-3.1.4/lib
# 使其生效
ldconfig -v
# 编译安装gcc
./configure --prefix=/opt/compiler/gcc-10.2.0 --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --with-gmp=/opt/compiler/gmp-6.1.0 --with-mpfr=/opt/compiler/mpfr-3.1.4 --with-mpc=/opt/compiler/mpc-1.0.3 --with-isl=/opt/compiler/isl-0.18
--disable-multilib
# “-j”参数可利用多核CPU加快编译速度
# 可通过下述命令查询CPU核数:
cat /proc/cpuinfo| grep "processor"| wc -l
make -j4
make install
# 查看
/opt/compiler/gcc-10.2.0/bin/gcc --version
往期推荐
往期推荐
公众号后台回复「加群」拉你进技术交流群
公众号后台回复「编程」送你编程面试资料