我的代码是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
我不知道如何调试这个 - 任何想法?
非常感谢。
答案 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;