Gcc错误:gcc:尝试执行'cc1'时出错:execvp:没有这样的文件或目录

Sco*_*ter 86 gcc

我已成功在Linux Mint 12上使用gcc.现在我收到错误.我最近做了一些.so构建并安装了很久以前的Clang,但是自从这两个事件都成功编译后,所以不确定发生了什么变化.我使用GUI软件管理器删除然后再次安装gcc,但结果是一样的:

~/code/c/ut: which gcc                                                                                                     
/usr/bin/gcc

~/code/c/ut: gcc -std=c99 -Wall -Wextra -g -c object.c                                                                      
gcc: error trying to exec 'cc1': execvp: No such file or directory
Run Code Online (Sandbox Code Playgroud)

mch*_*hid 60

在debian/ubuntu上我通过重新安装修复了这个问题build-essential:

sudo apt-get update
sudo apt-get install --reinstall build-essential
Run Code Online (Sandbox Code Playgroud)


Ant*_*ins 60

在CentOS或Fedora上

yum install gcc-c++ 
Run Code Online (Sandbox Code Playgroud)


max*_*kov 38

1.解释

错误消息告诉您,找不到构建时依赖项,因此您需要 - 将适当的软件包安装到您的系统中(使用软件包管理器,从源代码构建或以其他方式构建)

什么是cc1:

cc1是内部命令,它接受预处理的C语言文件并将它们转换为程序集.它是编译C的实际部分.对于C++,有cc1plus和其他用于不同语言的内部命令.

从这个答案采取艾伦Shutko.

2.解决方案

Ubuntu/Linux Mint

sudo apt-get install --reinstall build-essential
Run Code Online (Sandbox Code Playgroud)

码头 - 高山环境

如果您在docker-alpine环境中安装cc1,请添加以下内容:

RUN apk add build-base
Run Code Online (Sandbox Code Playgroud)

到你的Dockerfile.如果您需要更多包用于建筑目的,请考虑添加cc1包.

取自github

  • 在 Ubuntu 20.04.2 上对我不起作用 (5认同)
  • 对于 Amazon Linux 2,“sudo yum install gcc72-c++”对我不起作用,但“sudo yum install gcc-c++”工作正常。 (5认同)
  • 在 OpenSuse 中,运行 `zypper install -t pattern devel_basis` 不会安装 C++,请运行 `zypper install gcc-c++` 来添加它。 (2认同)

per*_*ain 26

这是因为gcc调用许多其他可执行文件来完成输入的处理,并且cc1不在包含的路径中.

关于shell类型whereis cc1.如果cc1找到,最好继续在目录中创建一个软链接gcc; 否则,cc1未安装,您必须使用包管理器安装gcc-c ++.

  • cc1/cc1plus 二进制文件不应该在 $PATH 中。 (3认同)
  • 谢谢回复.其中cc1没有返回任何内容.我根据软件管理器安装了gcc和gcc-4.4,gcc-4-6,libgcc1.我只是安装了g ++,但我仍然收到错误. (2认同)
  • 查看/ usr/local/libexec/gcc/<architecture>/<compiler>/<compiler_version>/cc1中是否存在可执行文件,否则临时使用导航到/ usr/bin并通过`ln -s cc cc1创建链接 (2认同)

Ren*_*rro 14

亚马逊Linux:修复GCC问题

由于这是Google的第一个结果,我只想记录我在Amazon Linux上的体验.安装gcc-c++.noarch修复了问题:

sudo yum install gcc-c++.noarch

有些人还报告了这种替代方案:

sudo yum install gcc72-c++

  • sudo yum install gcc72-c ++在Amazon Linux上为我排序 (9认同)
  • 绝对是亚马逊linux的问题,但是唉,`.noarch`已经安装好了. (2认同)
  • 很高兴有人在谈论 Amazon Linux,但这些解决方案都不适合我...... (2认同)
  • 在“Amazon Linux AMI 2018.03”上 yum install gcc72-c++ 也是我所需要的。 (2认同)
  • sudo yum install gcc72-c++ 对我有用。非常感谢 (2认同)
  • 使用 yum install gcc-c++ 重试 (2认同)

dea*_*aks 11

我今天遇到了类似的问题 - 一个同事无法构建他的软件,但我可以构建它.当他跑的gcc时候找不到cc1.

他的可执行路径看起来很合理,但我无法轻易复制失败的事实表明他的环境中存在某些原因.

最终我们发现GCC_EXEC_PREFIX在他的环境中定义了罪魁祸首,并且gcc在搜索中误导了cc1.这是他的shell启动脚本的一部分,旨在解决对不再使用的SPARC/Solaris系统的限制.通过不设置此环境变量解决了该问题.

http://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html


Mar*_*ian 11

我通过显式安装g ++解决了这个问题:

sudo apt-get install g++
Run Code Online (Sandbox Code Playgroud)

安装pandas时在Ubuntu 12.04上遇到问题.(谢谢perilbrain.)


小智 6

yum install gcc-c++ 做了修复.


小智 5

确保您的GCC_EXEC_PREFIX(env)未导出并且PATH已导出到正确的工具链。