この非常に単純なコードでは、大量のエラーが発生します。
#include <iostream>
#include <string>
int main() {
std::string test = " ";
std::cout << test;
}
コンソールでgcc -o simpletest simpletest.cppと入力して、Linuxでコンパイルしようとしました。なぜ機能しないのかわかりません。何が起こっている?
「gcc」の代わりに「g++」を使用してみてください。
他の人が言ったことに加えて:g++
GNUC++コンパイラです。 gcc
はGNUコンパイラコレクションです(多くの人が想定しているように、GNU Cコンパイラでは ありません)。C++ソースをコンパイルするとき gcc
のフロントエンドとして機能します。C、C ++、Objective-C、Fortran、Ada、アセンブリなどをコンパイルできます。g++
gcc
コンパイルに失敗する理由gcc
は、C++標準ライブラリにリンクする必要があるためです。デフォルトでg++
は、これを実行しますが、実行gcc
しません。を使用してC++標準ライブラリにリンクするにはgcc
、次を使用します。
gcc -o simpletest simpletest.cpp -lstdc++
試す:
g++ -o simpletest simpletest.cpp
で試してくださいg++ -o simpletest simpletest.cpp
。gcc は C コンパイラですが、g++ は必要な C++ ライブラリにもリンクする C++ コンパイラです。
return 0;
さらに、関数の最後にa を追加する必要がありますmain()
。
コンパイラがうるさい場合は、すべての重要なことreturn 0;
を最後に追加することをお勧めします
g ++は私にとっても正しい答えでした、ありがとう、私はそれを投票しました。
しかし、1998年2月13日から使用している私のコード(最初のコメント)は、子供の乳母の実効総賃金と源泉徴収を計算するために、g++でも非常に単純でした。上記の例では、私のStroustrup-second-edition準拠の恐竜は次のようになりました。
// too simple!
#include <iostream.h>
#include <stdlib.h>
main() {
cout << "Hello World!" << endl;
}
これにより、エラーメッセージの完全なターミナルウィンドウが表示されます。中括弧以外はすべてエラーです。そして、その欠落したリターンライン。当時は、これは商用C++開発環境で正しくコンパイルおよび実行されていました...
新しい学校を蹴って、私は今使っています://十分に単純です
#include <iostream>
#include <stdlib.h>
int main(int argc, char* argv[] ) {
std::cout << "Hello World!" << std::endl;
// TODO - this ought to return success, 0
}
元の質問者はstd::coutを持っていて、
<string>...
「シンプル」は相対的な用語です...
明細書
main()
を返すと宣言しましたint
が、return ステートメントはありません。追加return 0;
して、それが役立つかどうかを確認します。それでも問題が解決しない場合は、投稿を編集して、発生したエラーの代表的な行をいくつか含めてみてください。