我在 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]
虽然我能猜到乱七八糟的部分,但它们看起来很糟糕。那么有人遇到同样的问题或知道如何解决吗?
最佳答案
通常 gcc 使用 ASCII
或 UTF-8
编码进行输出。检查您的终端以找出它实际配置的编码。
作为一种快速解决方法,请尝试以这种方式运行 gcc 命令,看看是否可以看到有效字符(此处使用 ASCII
):
LC_ALL=C LANG=C gcc ...
如果问题得以解决,则说明您的区域设置配置不正确,或者至少不是您想要的区域设置。
要列出您的系统支持的所有区域设置:
eselect locale list
基于this指南,您需要在 .bashrc 中设置 LC_ALL
和 LANG
变量来配置您的区域设置,从上面的列表中选择一个(我猜是 en_US.UTF-8在你的情况下)。
关于c - 如何解决gcc警告信息困惑的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15131719/