0

私のコードはここにあり、new.cppというファイルにあります

コンソールで次のエラーが発生します。

[usr@host dir]$ gcc new.cpp
/usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../lib64/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
/tmp/ccVKDKZm.o: In function `__static_initialization_and_destruction_0(int, int)':
new.cpp:(.text+0x23): undefined reference to `std::ios_base::Init::Init()'
new.cpp:(.text+0x32): undefined reference to `std::ios_base::Init::~Init()'
collect2: error: ld returned 1 exit status

これをデバッグする方法がわかりません-何かアイデアはありますか?

どうもありがとう。

4

2 に答える 2

3

あなたが持っているエラーはリンクエラーです.あなたのコードはうまくコンパイルされました. エラーは、一部の標準ライブラリ要素にリンクできないことを示しています。

これを取得した理由は、gcc C フロントエンドを使用して C++ をコンパイラしているためです。実際には、gcc は C++ としてコンパイルしますが、C++ std ライブラリに対してリンクしません。

解決策は簡単です。C++ フロント エンド、g++ を使用します。

g++ new.cpp
于 2012-11-25T16:15:04.630 に答える
0
int main();

を宣言しmainていますが、定義していません。試す

int main() {}

代わりに、g++ でコンパイルすると、問題なくコンパイルされ (ただし、符号付き/符号なしの比較に関する警告が表示されます)、リンクされます。

37行目で、あなたは意図しましたか

queue >>= bsize;

それ以外の

queue >> bsize;

?

于 2012-11-25T16:14:10.030 に答える