完全なエラーメッセージ:
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
では、リンカーの問題でしょうか?
私が気づいたことの1つは、/usr/local/libexecまたは/usr/libexecディレクトリがないことです。しかし、これが問題なのか、それが何を意味するのかよくわかりません。
ベストアンサー1
問題を解決しました!
cc1plusエラーを修正するには:
最初の問題はクロスコンパイルするため、まずRaspberry PiにOpenSSLをインストールしてからライブラリをコンピュータにコピーする必要があることです。
その後、sysrootフォルダ(何らかの理由で破損しています)の新しいコピーをインポートし、ここにOpenSSLを置く必要がありました。
その後、「crt1.0、crti.o、crtn.o、libdl.so.2が見つかりません。対応するファイルまたはディレクトリがありません」という別のエラーが表示されます。
これらの問題を解決するには、sysrootフォルダにシンボリックリンクを作成して、コンパイラが期待するファイルのソースを指す必要がありました。
今私のプロジェクトがコンパイルされます!