2

この非常に単純なコードでは、大量のエラーが発生します。

#include <iostream>
#include <string>

int main() {
    std::string test = " ";
    std::cout << test;
}

コンソールでgcc -o simpletest simpletest.cppと入力して、Linuxでコンパイルしようとしました。なぜ機能しないのかわかりません。何が起こっている?

4

7 に答える 7

9

「gcc」の代わりに「g++」を使用してみてください。

于 2008-11-05T22:49:46.400 に答える
8

他の人が言ったことに加えて: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++
于 2008-11-05T23:11:06.467 に答える
5

試す:

g++ -o simpletest simpletest.cpp
于 2008-11-05T22:49:58.413 に答える
5

で試してくださいg++ -o simpletest simpletest.cpp。gcc は C コンパイラですが、g++ は必要な C++ ライブラリにもリンクする C++ コンパイラです。

return 0;さらに、関数の最後にa を追加する必要がありますmain()

于 2008-11-05T22:50:44.637 に答える
2

コンパイラがうるさい場合は、すべての重要なことreturn 0;を最後に追加することをお勧めします

于 2008-11-05T23:04:41.300 に答える
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>...  

「シンプル」は相対的な用語です...

明細書

于 2012-04-16T19:59:58.580 に答える
0

main()を返すと宣言しましたintが、return ステートメントはありません。追加return 0;して、それが役立つかどうかを確認します。それでも問題が解決しない場合は、投稿を編集して、発生したエラーの代表的な行をいくつか含めてみてください。

于 2008-11-05T22:49:46.277 に答える