【c++连载】搭建编译环境

阅读本文大概需要 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

往期推荐

往期推荐

【面试】彻底理解 IO多路复用

公众号再也不用为单独上传图片和排版发愁了

10分钟彻底理解自适应大邻域搜索算法

【并发编程】线程安全之锁

公众号后台回复「加群」拉你进技术交流群

公众号后台回复「编程」送你编程面试资料

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值