我在 i686 上使用 Red Hat Linux 版本 9 内核 2.4.20-8,gcc 版本为 2.96。在我的代码中我声明如下:
std::locale utf8_locale;
我收到此错误:
syntax error before `;'
请给我建议一个解决方案。
答案1
GCC 3.0.4 于 2002 年 2 月发布。那里从未成为官方 2.96; 2.96 是一个内部开发版本,其二进制格式向前和向后都不兼容,并且可能永远无法保证像 GCC 2.95.x 或 3.0 那样工作。
从 ISO 上的文件日期来看,Red Hat Linux 9 于 2003 年初组装。维基百科同意并声称发布日期为 2003 年 3 月 31 日。
这些都是比较古老的。
我敢打赌,GCC 的 C++ 支持(包括命名空间和其他,几乎可以肯定它的 C++ 标准库)在过去十二年左右的时间里已经得到了极大的改进,并且强烈建议您第一次尝试寻找解决方案应该将要使用更现代版本的编译器和标准库构建您的代码。不要指望使用十多年的旧编译器来构建任何现代的东西(我什至不确定std::locale
是否没有被介绍自那以后)。
如果这没有帮助,你应该查看周围的线条和任何周围的错误。很多时候,较早的错误可能会使编译器偏离轨道,导致它抛出实际上不存在的错误,而这些错误只是过去解析错误的结果。在解决后来的错误之前先解决所有早期的错误。