私は初心者ですが、冒険好きです。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 やプログラミングに関する情報が大量に含まれています。