8

最初の「Hello World!」を実行しようとしています。C++で。Windows XP を使用しており、g++ C++ コンパイラがインストールされている cygwin をインストールしました。小さな hello-world プログラムを作成し、hello.cpp に保存しました。コマンドプロンプトから次のように書きます。

g++ ハロー.cpp

しかし、私は得る:

「g++」は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されません。

D:\programs\cygwin に cygwin をインストールしました。D:\cpp に hello-world ファイルを含む別のディレクトリを作成しました。インストールまたはパスに問題があるようですが、何が原因かわかりません。cygwin の exe ファイルを実行しました。インストール ディレクトリに、必要なすべてのファイルがあると思います: bin フォルダー、lib、Cygwin.bat など。

このようなエラー メッセージが表示された場合、cygwin1.dll ファイルが Windows のメイン フォルダにコピーされているかどうかを確認する必要があることを読みました。これは C:\WINDOWS ディレクトリですか? 私はそこを見ましたが、そのようなファイルはありません。cygwin の bin フォルダー (D:\programs\cygwin\bin) に cygwin1.dll があります。また、bin フォルダー (D:\programs\cygwin\bin) がコマンドの検索パスに含まれているかどうかを確認するにはどうすればよいですか?

hello-world プログラムに構文エラーが含まれていてはいけないと思います。コピーしたところです。また、書くときは

g++ -v

コマンドが認識されないという同じエラー メッセージが表示されます。誰かが私に何を見ればいいのかヒントをくれれば幸いです。ありがとうございました。

hello-world プログラムのコードは次のとおりです。

#include <iostream>
using namespace std;

int main() {
  cout <<"Hello World!"<<endl;
  return 0;
}

g++ をインストールしましたが、g++ -v と入力すると、次のように表示されます。 egcs-2.91.57\specs gcc バージョン egcs-2.91.57 19980901 (egcs-1.1 リリース)

bin ディレクトリには、g++.exe と gcc.exe の両方があります。上記の「gcc」ではなく「g++」を取得する理由がわかりません。これがどれほど重要かはわかりませんが、DOS コマンド プロンプトでプログラムをコンパイルしようとすると、次のエラー メッセージが表示されます。

g++ ハロー.cpp

私は得る:

hello.cpp:1: parse error before character 0357
hello.cpp: In function 'int main()':
hello.cpp:'cout' undeclared (first use this function)
hello.cpp: (Each undeclared identifier is reported only once
hello.cpp: for each function it appears in.)
hello.cpp: 'endl' undeclared (first use this function)

そして、cygwin シェルでプログラムをコンパイルしようとすると、次のようになります。

hello.cpp:1: parse error before character 0357
hello.cpp: In function 'int main()':
hello.cpp:'cout' undeclared (first use this function)
hello.cpp: (Each undeclared identifier is reported only once
hello.cpp: for each function it appears in.)
hello.cpp: 'endl' undeclared (first use this function)
g++.exe: hello.cpp: No such file or directory
g++.exe: No input files
g++.exe: hello.cpp: No such file or directory
g++.exe: No input files
g++.exe: hello.cpp: No such file or directory
g++.exe: No input files
g++.exe: hello.cpp: No such file or directory
g++.exe: No input files
g++.exe: hello.cpp: No such file or directory
g++.exe: No input files
4

12 に答える 12

3

人々が言っ​​たように、パスを確認してください。cygwin DLL のコピーを開始しないでください。これは必要ありません。後で問題が発生する可能性があり、問題を解決できません。

また、Windows PATH 変数 (およびその他) の設定に関しては、この小さなプログラムが非常に便利で、MS コントロール パネルのアプレットに目を細めるよりも優れていることがわかりました。

編集: OPが誤ってg ++をインストールしていないようです-最初に明白な質問をして答えた私たち全員の教訓:-)

于 2009-03-02T16:27:16.857 に答える
3

あ、cygwinをインストールするとg++がインストールされると思っていました。その場合、実際には最初に g++ をインストールする必要がありますね。

(その後、再起動します)

于 2009-03-02T17:05:43.720 に答える
2

ここでは、Windows シェルを使用していると想定しています。cygwin Bash シェルからコンパイラを呼び出す場合は、すべてのパスが設定されている必要があります。

于 2009-03-02T16:24:22.417 に答える
2

私は数年前にこれについてのチュートリアルを書きました。

http://www.codeguru.com/cpp/misc/misc/compilerandpre-compiler/print.php/c8107__1/

g++ をインストールしましたか? Cygwin インストーラーのデフォルト設定ではインストールされません。

于 2009-03-02T16:25:55.627 に答える
2

g++ をインストールしましたか? G++ は C コンパイラではなく、C++ コンパイラです。Cコンパイラのみをインストールした場合、コマンドgccはありますが、コマンドg++はありません

于 2009-03-02T17:18:46.497 に答える
2

パス上にあることを確認するか、bash シェル コマンド プロンプトを実行していることを確認してください。

于 2009-03-02T16:44:52.740 に答える
1

c:\cygwin\bin が PATH にあることを確認してください。

それが役に立てば幸い。

于 2009-03-02T16:22:31.657 に答える
1

cygwin でパスを取得するには:

echo $PATH

これにより、問題を理解する道を歩むことができます。

編集

次のコマンドは、cygwin が Windows 内のすべてのファイルを探すべきだと考える場所を教えてくれます。

mount

/usr/bin を含む行は、コピーが必要な行です。

于 2009-03-02T16:28:02.923 に答える
1

dos シェルを起動します。

cd c:\cygwin\bin

c++ または cpp と入力します

またはディレクトリコマンドを実行して内容を確認します。cpp または c++ を探します。

そこにない場合は、ダウンロードしていません。

于 2009-03-02T17:10:41.837 に答える
0

これをパスに追加する (これで問題が解決します) ことに加えて、make と dbg をダウンロードすることもできます。これも開発パスにありますが、デフォルトではチェックされていません。すべてを再ダウンロードしないように、全体的なインストール オプションとして [保持] を選択してください。

于 2009-03-02T16:29:28.440 に答える
0

他の人が言及したように、これはおそらくパスの問題であるため、環境変数 PATH を確認する必要があります。これを行うには、右クリックしMy Computerて [プロパティ] をクリックします。「詳細」タブに移動し、「環境変数」ボタンをクリックします。ここから、言及したパスが PATH 変数に含まれているかどうかを確認します。そうでない場合は、パスを区切るためにそこにあるのと同じ構文を使用してそれらを追加します(パス間のセミコロンまたはコロンだと思います。)

編集:ああ、あなたはすでにこれを行っているようです(私の投稿をほんの数秒上回っています)。今必要なのは再起動だけだと思います。

于 2009-03-02T17:02:46.957 に答える
-1

新しいファイルを作成し、コピーして貼り付けずに自分でコードを入力してみてください。コードに不正な文字が含まれている可能性があり、選択したエディターでは表示されない場合があります。

于 2009-03-07T00:01:04.063 に答える