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

用更有意义的文本替换GCC输出中的a-hats,c,gcc,C,Gcc,可能重复: C编程新手,我正在使用GCC。我注意到GCC有很多“a-hat”输出,如果这种情况继续下去,我开始觉得我可能会错过一些重要信息。例如: /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:

可能重复:

C编程新手,我正在使用GCC。我注意到GCC有很多“a-hat”输出,如果这种情况继续下去,我开始觉得我可能会错过一些重要信息。例如:

/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型帽子,以及如何用更有意义的东西来取代它们吗?我对修复程序中的bug不感兴趣(我创建它们是为了用a-hats显示很多错误)。但是由于所有的bug都显示了这些a-hats(真实的或创建的),我想知道如何设置GCC来用有意义的信息替换这些a-hats

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

也许您的
#包含了一个原始文本文件(例如,您的
数据\u a.txt
),其中不包含有效的C语法。或者某些注释没有用
*/
关闭。文件中的词法错误可能会溢出到下一个
#include
-d文件中

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

 gcc -C -E yourcode.c > yourcode.i
(在Linux机器上)然后查看
yourcode.i

我想它们是

使用

在编译之前,我会为我摆脱“a-hats”


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

您确定这些产品是由
gdb
生产的,而不是
gcc
?这看起来像是编译器输出,
gdb
不是编译器。你说得对,我错了。我会更新question.pmg,这对我很有用。如果你给我一个答案,我会接受的。谢谢@ggkmath:将问题标记为重复问题的目的是避免重复所有答案。你可以通过对另一个问题的答案进行投票来表达你的支持。对不起,Jefromi,我的搜索中没有出现重复的问题,因为我是在a-hat上搜索的,而不是–上搜索的。他们的答案也适用于我,虽然pmg在这里的答案也适用于我,但没有出现在重复的帖子中。如果建议的话,我很乐意删除此帖子。正确,我使用//here而不是//*和*/作为注释来生成这些a-hats,并使用-ansi开关编译文件,该开关不允许//style注释。然而,似乎任何其他一般性错误也包含这些a-hats。不要试图修复这里的错误,只要试着理解为什么它们都包含此代码而不是实际的文本。你应该阅读一本好的C编程书,并尝试“在编译器的位置思考”。感谢上面的代码行。在调试期间,附加信息总是很好的。我一直在读Prata的C Primer Plus,它是非常宝贵的。嗯,可能就是这样。我正在Mac(雪豹)上使用X11.app通过ssh隧道连接到远程服务器。X11的首选项设置没有显示任何启用unicode支持的方法。必须有其他方法来实现它们。
export LC_ALL=C