3

我在 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]

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

4

2 回答 2

1

通常 gcc对其输出使用ASCII或编码。UTF-8检查您的终端以找出它实际配置的编码。

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

LC_ALL=C LANG=C gcc ...

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

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

eselect locale list 

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

于 2013-03-01T02:18:21.760 回答
1

这个问题终于解决了。我发现是我的 XSHELL 的问题 通过设置 XSHELL 去 UTF8 ,它可以正常工作。感谢大家 !

于 2013-03-01T04:42:25.410 回答