Ubuntu

G++/GCC 已安裝但仍然:嘗試執行 ‘cc1plus’ 時出錯:execvp:沒有這樣的文件或目錄

  • March 7, 2019

完整的錯誤消息:

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 目錄,但我不確定這是否是一個問題或它可能意味著什麼。

我解決了這個問題!

要修復 cc1plus 錯誤:

第一個問題是,由於我是交叉編譯,所以我需要先在我的樹莓派上安裝 OpenSSL,然後將該庫複製回我的 PC。

然後我必須獲取我的 sysroot 文件夾的新副本(由於某種原因已損壞),並將我的 OpenSSL 放入其中。

然後出現了額外的錯誤,說“找不到 crt1.0、crti.o、crtn.o 和 libdl.so.2:沒有這樣的文件或目錄”:

為了解決這些問題,我必須在我的 sysroot 文件夾中創建符號連結,以指向這些文件來自編譯器期望它們所在位置的位置。

現在我的項目編譯了!

引用自:https://unix.stackexchange.com/questions/504795