Ubuntu
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 目錄,但我不確定這是否是一個問題或它可能意味著什麼。
我解決了這個問題!
要修復 cc1plus 錯誤:
第一個問題是,由於我是交叉編譯,所以我需要先在我的樹莓派上安裝 OpenSSL,然後將該庫複製回我的 PC。
然後我必須獲取我的 sysroot 文件夾的新副本(由於某種原因已損壞),並將我的 OpenSSL 放入其中。
然後出現了額外的錯誤,說“找不到 crt1.0、crti.o、crtn.o 和 libdl.so.2:沒有這樣的文件或目錄”:
為了解決這些問題,我必須在我的 sysroot 文件夾中創建符號連結,以指向這些文件來自編譯器期望它們所在位置的位置。
現在我的項目編譯了!