gcc: 'cc1plus' を実行中にエラーが発生しました: execvp: そのようなファイルまたはディレクトリはありません

gcc: 'cc1plus' を実行中にエラーが発生しました: execvp: そのようなファイルまたはディレクトリはありません

私は初心者ですが、冒険好きです。Windows、Fedora、Ubuntu 14.04 LTS (すべて 64) を 3 台同時にブートしています。dpkg、apt、apt-get は学習中ですが、使用していません。Ubuntu (gcc がインストールされている唯一のもの) を使用して C++ の勉強を始めました。そこで、最初のコンパイルの試みでコマンドを実行しgcc xy.cc、次の結果を得ました。

gcc: error trying to exec 'cc1plus' : execvp: No such file or directory

そこで、自分のコンピュータで cc1plus と execvp を検索しました。しかし、どちらも見つかりませんでした。ディレクトリには execvp.3.gz があり/user/share/man/man3、 には cc1 があるだけです/user/lib/gcc/x86_64-linux-gnu/4.8

そのため、パッケージのゲッターとチェッカーについて多くの作業と学習を行いましたが、削除して再インストールする勇気はありませんでした。

何か提案はありますか?

答え1

お使いのマシンに g++ パッケージが不足している可能性があります。ターミナルを開き、以下のコマンドを使用してインストールしてください。

sudo apt-get install g++

g++を使ってコンパイルするにはこれを使う

g++ -o test.o test.cpp

g++ は C++ ソースをコンパイルするために使用できますが、デフォルトの Ubuntu インストールには gcc が付属していますが、g++ は付属していません。

Cコンパイラを使用してC++ソースをコンパイルしようとしています。gccは通常C++コードを正常にコンパイルしますが、デフォルトではC++固有のライブラリをリンクしません(Stack Overflowのこの回答)。

次のようなメッセージが表示される場合はCouldn't find package ...、次のコマンドを試してください。

sudo apt-get update && sudo apt-get upgrade

それから

sudo apt-get install g++

答え2

cc1plus は gcc の c++ バックエンド (実際のコンパイラ) です。主に c++ でプログラミングする場合は、g++ をインストールする必要があります (cc1plus もインストールされます)。apt-get、synaptic、ソフトウェア マネージャーなどのパッケージ システム フロントエンドのいずれかを使用すると、依存関係も一緒にインストールされます。

execvp はプログラミング関数で、それに一致するファイルがその man (マニュアル) ページです。それを表示するには、ターミナルを開いて と入力しますman execvp。man ページは多くの場合オンラインで公開されており、そこには CLI やプログラミングに関する情報が大量に含まれています。

関連情報