无法从链接器中解密错误

时间:2012-11-25 16:11:48

标签: c++ gcc

我的代码是here,位于名为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

我不知道如何调试这个 - 任何想法?

非常感谢。

2 个答案:

答案 0 :(得分:3)

您遇到的错误是链接错误,您的代码编译正常。该错误告诉您它无法链接到某些标准库元素。

你得到这个的原因是因为你是带有gcc C前端的编译器C ++,实际上gcc会将它编译为C ++但是它不会将它与C ++ std lib链接。

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

g++ new.cpp

答案 1 :(得分:0)

int main();

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

int main() {}
相反,它编译(但有关于签名/无符号比较的警告)和使用g ++编译时没有问题的链接。

第37行,你打算

queue >>= bsize;

而不是

queue >> bsize;

相关问题