用更有意义的文本替换GCC输出中的a-hats

可能重复:
为什么gcc在其所有错误消息中都有“â”?

C编程的新手,我正在使用GCC。 我注意到海湾合作委员会的许多“帽子”输出,如果这种情况持续下去,我开始觉得我可能会错过一些重要的信息。 例如:

/usr/include/gconv.h:72: error: expected declaration specifiers or â before â /usr/include/gconv.h:174: error: expected specifier-qualifier-list before â /usr/include/libio.h:486: error: expected â, â, â, â or â before â /usr/include/stdio.h:308: error: expected declaration specifiers or â before â /usr/include/stdio.h:610: error: expected â, â, â, â or â before â DATA_a.txt: In function â: DATA_a.txt:3: error: expected expression before â token DATA_a.txt:3: error: â undeclared (first use in this function) Txvalues.c:11: error: expected expression before â token 

任何人都知道为什么我会看到这些帽子,以及如何用更有意义的东西取代它们? 我对修复程序中的错误并不感兴趣(我故意创建它们以显示许多带帽子的错误)。 但是,由于所有的错误都显示了这些(真实的或创造的),我想知道如何设置GCC来用有意义的信息取代这些帽子。

我认为它们是Unicode引号 。

运用

 export LC_ALL=C 

在编译之前为我摆脱了“a-hats”。

注意:我不知道这有什么影响(如果有的话)。 使用风险由您自己承担。

粗略猜测,您没有使用支持扩展字符的终端。 大多数现代终端类型应该支持unicode,因此应该以易读的forms呈现错误消息。 你使用什么终端类型?

也许你#include -da原始文本文件(例如你的DATA_a.txt )不包含有效的C语法。 或者也许某些评论没有以*/ 。 文件中的词法错误可能会溢出到下一个#include -d文件。

要了解预处理后的源代码(对于编译器),可以使用eg

  gcc -C -E yourcode.c > yourcode.i 

(在Linux机器上),然后查看yourcode.i