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

Gcc错误:Gcc:尝试执行';cc1';:execvp:没有这样的文件或目录,gcc,Gcc,我已经在LinuxMint12上成功地使用了gcc。现在我得到一个错误。我最近做了一些。所以不久前构建并安装了Clang,但在这两个事件之后已经成功编译,所以不确定发生了什么变化。我使用GUI软件管理器删除gcc,然后再次安装,但结果相同: ~/code/c/ut: which gcc /usr/

我已经在LinuxMint12上成功地使用了gcc。现在我得到一个错误。我最近做了一些。所以不久前构建并安装了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

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


在外壳类型
上,其中为cc1
。如果找到了
cc1
,最好在
gcc
目录中创建一个软链接;否则,
cc1
未安装,您必须使用软件包管理器安装gcc-c++。

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

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

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


确保您的
GCC\u EXEC\u前缀(env)
未导出,并且您的
路径
已导出到右侧工具链。

如果您尝试在64位操作系统上运行32位GCC二进制文件而缺少32位glibc,则这也可能是显示的错误消息。据此:“对于64位系统,运行这些工具需要32位libc和libncurses。”。
在这种情况下,路径没有问题,实际上找到了cc1,但没有32位glibc。

您可以通过运行以下命令来修复此问题: 关于软呢帽:

sudo dnf install redhat-rpm-config

对我有帮助的是使用
llvm gcc

ln -s $(which llvm-gcc) /usr/local/bin/gcc

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

sudo apt-get update
sudo apt-get install --reinstall build-essential

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

sudo apt-get install g++
在Ubuntu 12.04上安装pandas时遇到问题。(谢谢。)

解释 错误消息告诉我们,未找到构建时依赖项(在本例中为
cc1
),因此我们所需的就是将适当的包安装到系统中(使用包管理器//从源代码//以另一种方式)

什么是
cc1

cc1
是一个内部命令,用于获取预处理的C语言文件并将其转换为汇编语言。它是编译C++的实际部分,C++有C1Pull和其他内部命令,用于不同语言。 由

解决方案:Ubuntu/Linux Mint
sudo-apt-get-update
sudo apt get install--重新安装build-essential
解决方案:Docker alpine环境 如果您在docker alpine环境中,请通过将此软件包添加到
docker文件中来安装该软件包:

运行apk add build base
提供更好的包名。更多

如果您需要更多的软件包用于构建目的,请考虑添加包:

运行apk添加高山sdk
取自

解决方案:CentOS/Fedora 包含CentOS和Fedora Linux的说明

解决方案:Amazon Linux
sudo yum安装gcc72-c++
摘自

您也可以尝试通过以下方式安装缺少的依赖项(尽管据说无法解决此问题):

sudo yum安装gcc-c++.noarch
取自CentOS或Fedora上的

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

sudo-yum安装gcc-c++.noarch

一些人还报告说,这是一种解决方案:


sudo-yum-install gcc72-c++

我在新安装的Fedora 27上遇到了这个问题。我尝试了所有其他建议或它们的等价物;安装不同的软件包时,要么说“已经安装”,要么安装了一些没有帮助的新软件包

固定

# dnf remove gcc
# dnf install gcc gcc-c++

yum安装gcc-c++
进行了修复。

在Scientific Linux 6上(类似于CentOS 6——SL现在被CentOS、AIUI取代),我不得不使用
/usr/sbin/prelink-av-mR
,我在

在此之前,我遇到了一个cc1错误
gcc:error试图执行'cc1':execvp:No-this-file或directory
,当我尝试编译时,gcc--version报告的是4.2.2而不是4.4.7,尽管yum报告的是该版本


它可能是相关的,也可能不是相关的,但是系统在/var上已经用完了空间,只是为了记录我在这个问题上的问题,尽管它只是其他答案的一个具体例子;作为一个相对的新手,我觉得这可能会帮助其他人

解决方案:

我使用
PATH='/usr/PATH/:$PATH'
在单个会话的路径开头添加了'/usr/bin',一切都开始正常工作

在确保不会破坏常规工具链之后,我使用gedit永久更新路径

说明:


我在Ubuntu14.04LTS上安装了多个工具链,我只定期使用几个。当我试图从命令行使用gcc时,我得到了OP描述的问题。'usr/bin'位于路径中,但位于其他工具链位置的后面。原来其他工具链的cc1与gcc不兼容。

在RHEL 7上编译并安装了全新的gcc(版本8.1)后不久,我就体验到了这一点。最后,它变成了一个权限问题;我的根
[root@nacelle gdb-8.1]# ls -l /usr/local/libexec/gcc/x86_64-pc-linux-gnu/8.1.0/ | grep cc1
-rwxr-xr-x 1 root root 196481344 Jul  2 13:53 cc1
[root@nacelle gdb-8.1]# ls -l /usr/local/libexec/
total 4
drwxr-x--- 3 root root 4096 Jul  2 13:53 gcc
[root@nacelle gdb-8.1]# ls -l /usr/local/libexec/gcc/
total 4
drwxr-x--- 3 root root 4096 Jul  2 13:53 x86_64-pc-linux-gnu
[root@nacelle gdb-8.1]# ls -l /usr/local/libexec/gcc/x86_64-pc-linux-gnu/
total 4
drwxr-x--- 4 root root 4096 Jul  2 13:53 8.1.0
[root@nacelle 8.1.0]# cd /usr/local/libexec
[root@nacelle lib]# ls -l | grep gcc
drwxr-x---  3 root root     4096 Jul  2 13:53 gcc
[root@nacelle lib]# chmod -R o+rx gcc
[root@nacelle lib]# ls -l | grep gcc
drwxr-xr-x  3 root root     4096 Jul  2 13:53 gcc
/ # apk info -R build-base
build-base-0.5-r1 depends on:
binutils
file
gcc
g++
make
libc-dev
fortify-headers

/ # apk info -R alpine-sdk
alpine-sdk-1.0-r0 depends on:
abuild
build-base
git
  sudo apt install g++-6
gcc-10: fatal error: cannot execute ‘cc1’: execvp: No such file or directory
sudo find /usr/local/ -type d -exec chmod 755 {} \;
sudo yum install gcc
sudo yum install gcc-c++