2016-10-27 20 views
-1

あなたが質問する前に、私はこの日を見ました。私は完全に立ち往生...私は私のcとcppのコードをコンパイルするMINGW32(私のショートカットはMSYSを言う)を使用しています。約2〜3日間、私は奇妙なエラーが発生しています。 (下)それは前にちょうどいい働いていた。私は以前にコンパイルしたのと同じコードを実行しても、同じエラーが発生しました。私はDevC++に入り、コンパイルして開きます。MinGW gccは他のコンパイラではエラーが発生します

エラー:

namespace: command not found

using: command not found

syntax error: int main(){

(sometimes it gives me a big unreadable mess)

私は本当にこだわっている...私は++ DEVCに切り替えるには持っていけない...私は自分のテキストエディタを使用して、コマンドラインでコンパイルしたいです。

+0

申し訳ありませんが、これは初めての投稿です。私は助けてくれるものをたくさん読んだので、尋ねることにしました... –

+0

"大きな読めない混乱"を投稿してください。あなたの実際のプログラムと同様に。プログラムを見ずにどうやってお手伝いをするかわかりません。 – xaxxon

+0

g ++の代わりにgccを実行していると思います。また、この質問はIDEとは関係がないので、DevC++についてのあなたの意見は無意味です。 – MrEricSir

答えて

-1

エラーnamespace: command not foundusing: command not foundから、適切なコンパイラでコードをコンパイルしていないことがわかりました。 MINGW32ツールチェーンにおける参考

gcc.exe = C 

g++.exe = C++ 

あなたはそれが便利なIDEのactualyあなたのコンパイラで何をすべきかを見てみましょうするかもしれません。

C:/mingw32/bin/g++.exe -c "C:/MyProgram/main.cpp" -g -O0 -std=c++14 -Wall -o ./Obj/main.cpp.o -I. -IDependencies/Something/include 

だから、これが何をするか調べることができます: 私の現在のIDEは私がそれは私のプロジェクトをビルドするために実行されるすべてのコマンドを表示することができます。 。

私の現在のツールチェーンがC:/mingw32/bin/g++.exe

グラムに位置していますMINGW32です++我々はG ++ exeファイルを呼び出すように、私たちのC++コンパイラであり、我々は次のスイッチパス:これはコンパイルする私のコンパイラに指示します

-c "C:/MyProgramm/main.cpp" 

を私のプロジェクトディレクトリからmain.cpp。私のIDEはいくつかのコマンドラインスイッチを追加します。答えの目的のために私は-oだけを考慮する。これは、コードmain.cppの出力ファイルを出力ファイルに出力します。

このようなファイルを作成する理由は、同じファイルを変更せずに2回コンパイルする必要がないように、コンパイルに時間を節約するためです。この手順を各ファイルに対して実行し、.oファイルのコレクションを作成します。

C:/mingw32/bin/g++.exe -c "<my project directory>/<file>.cpp" -o ./Obj/<file>.cpp.o 

は、私はあなたがG ++関数の説明文をよく読んでとすることをお勧めします:

新しいファイルは、コマンド・ライン機能は次のようになりますことを意味し"C:/MyProgramm/Obj/main.cpp.o"

に保存されますあなたはすぐにあなたのコンパイラでより高度なことをする必要があることがわかるように、さまざまなIDEから学びます。私はフィードバックを反映するように編集* -std=c++14

を追加する++ 14 Cからの機能を有効にするために、例えば

+2

Cにはコマンドがないので、「コマンドが見つかりません」というエラーを生成する* Cコンパイラについてはわかりません。ですから、私はこの問題がCコンパイラにプログラムを与えることから来ているとは思っていません。 – rici

+0

@rici:Cにはコマンドがありますか、あるいはC89の時点ではありましたが、何らかの奇妙な理由のために用語が使われていません。 CはBCPLに由来し、コマンドは構文でもコマンドと呼ばれていました。コマンドは単に宣言ではないステートメントです。 C89で思い出したように、1つのブロックでは、コマンドの前に宣言が来なければなりませんでした。 C++では、文とコマンドの順序はブロック内で許可されますが、C++翻訳単位は一連の宣言のみです。つまり、その順序ではコマンドが許可されません(つまり、名前空間のスコープではコマンドを実行できません)。 –

+0

@ Cheersandhth.-Alf:C99またはC11で見つかる "command"という単語の唯一の使い方は、 'system()'関数について説明している7.22.4.8節です。 (... 'system'関数は' string'が指す文字列をその**コマンドプロセッサ**に渡して実行されます)。 (現在の)標準の文法は、K&Rのコピーと同じように、文を呼び出します(第2版、1988年)。だから私は私の声明(またはあなたが好きなら私のコマンド:)に立っている)。 CはBCPLに由来するが、BCPLではない。そして私は、BCPLコンパイラが「コマンドが見つかりません」というエラーを発行したことを非常に疑う。 – rici

関連する問題