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++ 标准库链接。

解决方法很简单,使用c++前端,g++

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

声明 a main,但没有定义一个。尝试

int main() {}

相反,它编译(但带有关于有符号/无符号比较的警告)并且在使用 g++ 编译时链接没有问题。

在第 37 行,您是否打算

queue >>= bsize;

代替

queue >> bsize;

?

于 2012-11-25T16:14:10.030 回答