Docker配置任意版本编译环境(GCC升级、降级、指定版本)

引(时间紧迫的朋友可以跳过该部分)

  • 你是不是正被需要指定GCC版本的项目弄的焦头烂额?
  • 你是不是正被GCC编译安装的下载速度所限制?
  • 你是不是正被编译安装时报出的各种错误扰乱了心智?
    现在有工具可以解救这种处境下的人类了——Docker。

说明

后面并没有用到dockerfile,因为从追求简易的角度出发,所以对于掌握docker的朋友来说,理解更加容易。

准备工作

  1. 首先需要安装Docker,配置一个国内镜像。下载参考Docker官网,安装是图形界面安装跟一般软件差不多,注册后配置一个国内镜像源,跟Anaconda配置镜像源一样。
  2. 准备好你的代码,原理是用Docker特定版本编译环境的容器,将代码文件夹共享到容器的一个目录,然后进行编译生成执行文件,有点借鸡下蛋的意思。

实践

例如我本次需要GCC-6.3.0的环境,在Docker安装完毕,启动后在终端键入以下命令,拉取一个指定编译环境的镜像。

docker pull gcc:6.3.0

下载后的gcc:6.3.0实际上是一个Linux环境,运行该镜像并创建一个路径后面用来共享本机的代码。

docker run -it gcc:6.3.0

镜像启动后创建路径,你也可以键入gcc -v然后发想版本就是想要的6.3.0,各个部件都运行正常0 error everything all right.

mkdir /opt/code

创建路径后需要关闭当前容器,新打开一个终端窗口。

docker ps  # 用来查看当前运行了哪些容器,并获得其id
docker stop xxxxxxxxxx  # xxx...是将上一条指令查出的该容器的id

最后将本地的待编译文件共享给配置好的容器,进行编译。

这里需要本地代码文件夹的绝对地址,如/usr/codeFile

注意地址顺序和冒号。

docker run -itv /usr/codeFile:/opt/code gcc:6.3.0

进入到容器后,你会惊喜的发现本机的代码文件被共享到了容器/opt/code文件夹中。

最后,是想验证代码能否在该环境下跑通,或者想“借鸡下蛋”就看你的意思啦,因为本次操作的过程中,容器在该文件夹生成的可执行文件是对本机可见的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值