我在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]
虽然我可以猜到混乱的部分,但它们看起来很糟糕。那么有人遇到同样的问题或知道如何解决它吗?
答案 0 :(得分:1)
gcc通常使用ASCII
或UTF-8
编码作为输出。检查终端以确定实际配置的编码。
作为一种快速解决方法,请尝试以这种方式运行gcc命令,以查看是否可以看到有效字符(它在此处使用ASCII
):
LC_ALL=C LANG=C gcc ...
如果这样可以解决问题,那么您的语言区域配置不正确,或者至少不是您想要的语言环境。
列出系统支持的所有语言环境:
eselect locale list
根据this指南,您需要在.bashrc中设置LC_ALL
和LANG
变量来配置您的语言环境,从上面的列表中选择一个(我猜是en_US在你的情况下.UTF-8。
答案 1 :(得分:1)
这个问题最终得以解决。我发现这是我的XSHELL的问题 通过设置XSHELL转UTF8,它可以正常工作。谢谢你们所有人!