DockerFile build g++ commandnot found

Dockerfile构建镜像,期间需要安装gcc, g++和cmake,使用以下命令安装:

# 安装gcc相关(这句可以正常运行)
RUN yum install -y devtoolset-9-build devtoolset-9-gdb devtoolset-9-gcc devtoolset-9-gcc-c++ make \
&& scl enable devtoolset-9 bash && source /opt/rh/devtoolset-9/enable \
&& gcc --version && g++ --version 

# 安装cmake
RUN cd ${workdir}/cmake-3.24.1 && ./bootstrap --prefix=/usr/local && make -j4 && make install 

构建安装gcc相关的步骤时,没有错误发生,而且在这一步已经把gcc 9 enable了,gcc和g++ version的信息也打印出来了

但是执行到安装cmake步骤时,却显示以下的错误:

Error when bootstrapping CMake:
Cannot find appropriate C compiler on this system.
Please specify one using environment variable CC.
See cmake_bootstrap.log for compilers attempted.

提示的说明是找不到gcc,但是上一步骤已经显示gcc/g++已经安装成功了,这是为什么呢?后来找RUN命令的用法的时候,看到了这篇博文:Dockerfile实践指南之RUN命令使用,里面提到每次RUN都是新建一个新层,可能就是不同层间还不能互通的?所以后来试着在安装cmake步骤下添加source /opt/rh/devtoolset-9/enable,再build,发现问题解决了,即:

# 安装cmake
RUN source /opt/rh/devtoolset-9/enable && cd ${workdir}/cmake-3.24.1 && ./bootstrap --prefix=/usr/local && make -j4 && make install 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当你在命令行中输入"g++"命令时,出现"g++ command not found"的错误提示,通常表示你的系统没有安装或者没有正确配置g++编译器。 g++是GNU编译器集合(GCC)中的C++编译器,用于编译和链接C++程序。如果你想在命令行中使用g++编译器,你需要先安装GCC工具链,并确保它被正确配置。 以下是一些可能的解决方法: 1. 检查是否已经安装了GCC工具链:在命令行中输入"g++ --version",如果显示g++的版本信息,则表示已经安装了GCC工具链。如果没有显示版本信息或者提示"g++ command not found",则需要进行下一步操作。 2. 安装GCC工具链:根据你所使用的操作系统,可以通过包管理器来安装GCC工具链。例如,在Ubuntu上可以使用以下命令安装: ``` sudo apt-get update sudo apt-get install build-essential ``` 在CentOS上可以使用以下命令安装: ``` sudo yum groupinstall "Development Tools" ``` 3. 配置环境变量:在某些情况下,即使安装了GCC工具链,系统也可能无法找到g++命令。这时需要手动配置环境变量。在Linux或Mac系统中,可以编辑用户主目录下的.bashrc或者.bash_profile文件,在其中添加以下行: ``` export PATH=$PATH:/usr/local/bin ``` 然后保存文件并执行以下命令使配置生效: ``` source ~/.bashrc ``` 或者 ``` source ~/.bash_profile ``` 4. 重新启动终端:在完成上述步骤后,关闭当前终端窗口并重新打开一个新的终端窗口,然后再次尝试运行"g++ --version"命令,如果能够正确显示版本信息,则表示g++已经安装并配置成功。 希望以上解决方法能够帮助你解决"g++ command not found"的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值