Code :: Blocks 13.12在Windows上即使用-std = c ++ 11也无法识别std :: codecvt

时间:2015-02-14 13:44:29

标签: c++ c++11 g++ codeblocks

我正在使用mingw32-g ++版本4.8.1在Windows 8.1上的Code :: Blocks 13.12上编译带有ofxTrueTypeFont的openFrameworks项目。

最终出现错误:

...\ofxTrueTypeFontUC.cpp | fatal error: codecvt: No such file or directory

我甚至在编译器标志中打开了-std=c++11Here是一个有类似问题的人,显然还没有找到解决方法。

我该怎么做这个编译?同时我会尝试更新mingw32-g ++ ...

编辑:

似乎4.8.1是最新版本......即使那里有gcc-5.0.0。

1 个答案:

答案 0 :(得分:1)

不是真正的答案,但欢迎来到现实生活中。从理论上讲,应该有一个单独的C ++引用,版本(C + 11,C + 14,...),所有编译器都应遵循这一点,允许指定所有内容并禁止其他所有内容。

在现实世界中,编译器可以拒绝规范允许的构造,并接受规范不允许的其他构造。众所周知,2010年之前的MSVC对标准非常不情愿,gcc众所周知允许大量扩展,看起来你找到了一个不完全实现C ++ 11规范的地方。

您可以尝试使用另一个可以接受输入代码的编译器,或者执行上个世纪C程序员过去做的事情:找到适合您的开发环境的正确包含文件。也许#include <locale>就够了......

顺便说一下,问题不在编译器部分,而在于标准库实现...