【难受坏了】Docker容器 Debian 11 换gcc版本 换源

问题场景:

Ubuntu系统下Docker容器,容器内Debian11系统

1.想跑一个CV项目,Python包配置好后显示gcc不应该大于9,否则不接受,容器内默认gcc是10,于是开始疯狂百度将版本降到了4.8.5.

2.以为可以了,继续重启代码又发现当前代码要求编译器满足c++ 11 标准

3.于是开始查gcc版本与 c++标准的支持匹配关系,发现4.8实际上是支持cpp11的

4.仔细阅读报错发现在4.8执行编译的时候需要在命令中加入 -std=c++11 才能运行,当前版本的c++11风格属于experimental。

5.又开始想办法升版本,想办法升降版本的过程中牵扯出诸多问题。。。


问题描述

配环境永远的痛~

源的添加

涉及问题主要有:
1.vim修改 source.list 后保存不能使用,显示不可读取。

解决方案是用vi打开而不是vim

2.在apt update更新源的时候可能需要添加公钥,有时可能出现过期的pub_key.

版本优先度管理

关键字 :update-alternatives

1.用config参数查看当前存在版本以及对应优先级
2. --install和–slave可以配置优先级和slave从属关系 (如g++就是 gcc的slave)

gcc版本与cpp风格匹配关系

说来话长,尽管网上可以搜到对应不论是MSVC还是GCC, 每个版本区间和cpp风格标准的对应关系,但以我安装的4.8.5为例,可以按c++11标准编译运行cpp程序,但是要在指令中加一个-std=c++11,可是c相关的内容本来就是写在tensorflow和python底层的,我们也不可能去改源码,所以只能继续升版本,而且并不是所有版本都在某一个通用源上,究竟升哪个,能不能顺利升,都是一个谜.

本次遗留待更新问题

1.如何卸载,apt装的和编译安装的各种包。
2.什么是config然后make

猜你喜欢

转载自blog.csdn.net/qq_43337103/article/details/129261743
今日推荐