【发布时间】:2014-09-10 06:05:11
【问题描述】:
我敢打赌这个问题的解决方案非常简单,但我想知道为什么我不能让 gcc 编译我的 c++ 11 代码。
编辑:删除代码以简化问题。任何程序都会复制同样的错误。
我正在使用 gcc 编译器 4.7,如下所示:https://code.google.com/p/mingw-builds/downloads/detail?name=x86_64-mingw32-gcc-4.7.0-release-c%2Cc%2B%2B%2Cfortran-sjlj.zip&can=2&q=。
我用来编译的命令就是gcc Swamp.cpp -std=c++11。如果我使用 gcc Swamp.cpp 编译,代码只会抱怨 c++ 11 的内容。
在我看来,编译给出的错误是垃圾:
C:\Users\Owner\Documents\GitHub\CompetitiveProgramming\TestProject\CodeProject>gcc Swamp.cpp -std=c++11
C:\Users\Owner\AppData\Local\Temp\ccRKn67x.o:Swamp.cpp:(.text+0x67): undefined reference to `__gxx_personality_sj0'
C:\Users\Owner\AppData\Local\Temp\ccRKn67x.o:Swamp.cpp:(.text+0x30e): undefined reference to `__gxx_personality_sj0'
C:\Users\Owner\AppData\Local\Temp\ccRKn67x.o:Swamp.cpp:(.text+0x72e): undefined reference to `__gxx_personality_sj0'
C:\Users\Owner\AppData\Local\Temp\ccRKn67x.o:Swamp.cpp:(.text+0x78a): undefined reference to `std::cout'
…etc…
【问题讨论】:
-
在 c++ 代码中使用 g++
-
“barf”不是一个技术术语。
-
你还把一大堆不相关的错误称为什么。酒吧。
-
顺便说一下,不要使用
while (!someStream.eof()),它不会像你期望的那样工作,因为eofbit标志直到之后才设置你有试图读取超出文件末尾的内容。而是使用例如while (std::getline(...)). -
他们看起来都跟我很亲近。