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



可能重复:
为什么gcc有“#226”在所有的错误消息中?

C编程新手,我正在使用GCC。我注意到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

有人知道我为什么会看到这些a帽,以及如何用更有意义的东西来代替它们吗?我对修复程序中的错误不感兴趣(我创建这些错误是为了用a-hats显示很多错误(。但是,由于所有的bug都显示了这些a-hat(真实的或创建的(,我想知道如何设置GCC,用有意义的信息替换这些a-hats。

我认为它们是Unicode引号。

使用

export LC_ALL=C

在编译之前为我摆脱了"帽子"。

注意:我不知道这有什么影响(如果有的话(。使用风险自负。

粗略猜测,您使用的不是支持扩展字符的终端。大多数现代终端类型都应该支持unicode,因此应该以易读的形式显示错误消息。您使用的终端类型是什么?

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

为了理解预处理后(编译器(的源是什么样的,你可以使用例如

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

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

最新更新