如何解决gcc警告中的乱码信息

时间:2013-02-28 09:20:26

标签: c gcc-warning gentoo

我在64位linux(2.6.39-gentoo-r3)上编译了我的项目,GCC版本4.6.3 但是当我进行编译时,警告中包含一些不可读的字符。如下所示:

warning: field precision specifier ?.*?.expects argument of type ?.nt?. but argument 6 has type ?.ong int?.[-Wformat]
warning: format ?.u?.expects argument of type ?.nsigned int?. but argument 7 has type ?.ize_t?.[-Wformat]
warning: ignoring return value of ?.ystem?. declared with attribute warn_unused_result [-Wunused-result]

虽然我可以猜到混乱的部分,但它们看起来很糟糕。那么有人遇到同样的问题或知道如何解决它吗?

2 个答案:

答案 0 :(得分:1)

gcc通常使用ASCIIUTF-8编码作为输出。检查终端以确定实际配置的编码。

作为一种快速解决方法,请尝试以这种方式运行gcc命令,以查看是否可以看到有效字符(它在此处使用ASCII):

LC_ALL=C LANG=C gcc ...

如果这样可以解决问题,那么您的语言区域配置不正确,或者至少不是您想要的语言环境。

列出系统支持的所有语言环境:

eselect locale list 

根据this指南,您需要在.bashrc中设置LC_ALLLANG变量来配置您的语言环境,从上面的列表中选择一个(我猜是en_US在你的情况下.UTF-8。

答案 1 :(得分:1)

这个问题最终得以解决。我发现这是我的XSHELL的问题 通过设置XSHELL转UTF8,它可以正常工作。谢谢你们所有人!