有关如何修复此错误的任何想法?

时间:2013-04-07 19:42:39

标签: c++ unix compiler-errors

当我尝试在Unix服务器上编译我的C ++代码时,我一直遇到异常,但这些行只有:

#ifndef WEIGHTED_GRAPH_H
#endif

,错误是:

In file included from Weighted_graph_tester.h:17,
                     from Weighted_graph_driver.cpp:18:
    Weighted_graph.h:1: error: stray â\357â in program
    Weighted_graph.h:1: error: stray â\273â in program
    Weighted_graph.h:1: error: stray â\277â in program
    Weighted_graph.h:1: error: stray â#â in program
    In file included from Weighted_graph_tester.h:17,
                     from Weighted_graph_driver.cpp:18:
    Weighted_graph.h:172:2: error: #endif without #if
    Weighted_graph.h:1: error: âifndefâ does not name a type

任何想法?

1 个答案:

答案 0 :(得分:6)

它告诉你文件中有以下字节:

Oct: 357 273 277
Hex: EF  BB  BF

这些是UTF-8编码文件中的byte order mark。显然,您的编译器不支持UTF-8源文件,在它们的开头有字节顺序标记。实际上,在UTF-8文件中使用字节顺序标记甚至没有意义,因为任何单个单元的大小只有一个字节。您应确保在没有它的情况下保存文件。

来自Unicode标准:

  

对于UTF-8既不要求也不建议使用BOM,但在使用BOM的其他编码形式或将BOM用作UTF-8签名的UTF-8数据转换的上下文中可能会遇到