安装了 G++/GCC 但仍然:尝试执行“cc1plus”时出错:execvp:没有这样的文件或目录

安装了 G++/GCC 但仍然:尝试执行“cc1plus”时出错:execvp:没有这样的文件或目录

完整错误消息:
arm-linux-gnueabihf-g++:尝试执行“cc1plus”时出错:execvp:没有此文件或目录

因此,在 Ubuntu 18.04 上删除主目录并恢复后不久,我尝试在我的计算机上构建 C++ 项目时收到此错误消息。我怀疑这是因为我的环境中的某些原因,因为我不久前使用相同的设置构建了我的程序。经过研究这个错误,我发现几乎每个人都说这是因为我没有安装gcc/g++,或者错误地安装了gcc/g++,或者gcc/g++之间的版本不匹配。

但这似乎不是我的问题:

jayz@joshz:/usr$ gcc --version
gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

jayz@joshz:/usr$ g++ --version
g++ (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

我也尝试重新安装 gcc 和 g++,但仍然出现相同的错误。

我也尝试过:

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

事实上,我在系统上的多个位置找到了 cc1plus 文件:

jayz@joshz:/usr$ locate cc1plus
/home/jayz/raspi/sysroot/usr/lib/gcc/arm-linux-gnueabihf/4.9/cc1plus
/home/jayz/raspi/tools/arm-bcm2708/arm-bcm2708-linux-gnueabi/libexec/gcc/arm-bcm2708-linux-gnueabi/4.7.1/cc1plus
/home/jayz/raspi/tools/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/libexec/gcc/arm-bcm2708hardfp-linux-gnueabi/4.7.1/cc1plus
/home/jayz/raspi/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/libexec/gcc/arm-linux-gnueabihf/4.9.3/cc1plus
/home/jayz/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/libexec/gcc/arm-linux-gnueabihf/4.8.3/cc1plus
/home/jayz/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/libexec/gcc/arm-linux-gnueabihf/4.8.3/cc1plus
/usr/lib/gcc/x86_64-linux-gnu/7/cc1plus

所以也许这是一个链接器问题?

我注意到的一件事是我没有 /usr/local/libexec 或 /usr/libexec 目录,但我不确定这是否是一个问题或它可能意味着什么。

答案1

我解决了问题!

要修复 cc1plus 错误:

第一个问题是,由于我是交叉编译的,所以我需要首先在我的树莓派上安装 OpenSSL,然后将该库复制回我的电脑。

然后我必须获取 sysroot 文件夹的新副本(由于某种原因已损坏),并将我的 OpenSSL 放入其中。

然后出现其他错误,提示“找不到 crt1.0、crti.o、crtn.o 和 libdl.so.2:没有这样的文件或目录”:

为了解决这些问题,我必须在 sysroot 文件夹中创建符号链接,以指向这些文件来自编译器期望它们所在的位置。

现在我的项目可以编译了!

相关内容