c - 如何解决gcc警告信息困惑的问题

标签 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]

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

最佳答案

通常 gcc 使用 ASCIIUTF-8 编码进行输出。检查您的终端以找出它实际配置的编码。

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

LC_ALL=C LANG=C gcc ...

如果问题得以解决,则说明您的区域设置配置不正确,或者至少不是您想要的区域设置。

要列出您的系统支持的所有区域设置:

eselect locale list 

基于this指南,您需要在 .bashrc 中设置 LC_ALLLANG 变量来配置您的区域设置,从上面的列表中选择一个(我猜是 en_US.UTF-8在你的情况下)。

关于c - 如何解决gcc警告信息困惑的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15131719/

相关文章:

c - 你好,我想删除链表中的一个节点,但是我不能,我想了一整天,在我看来,它可以很好地工作

c - C 是否与 C++ 中的 std::less 等效?

c - 警告 : implicit declaration of function ‘getresuid’ (and ‘seteuid’ )

c++ - GCC中enum switch的控制流不足分析

linux -/var/run/dbus/system_bus_socket 权限被拒绝

linux - bash 中的 while 循环多个条件有什么问题

在C中将二维数组的一部分复制到另一个二维数组中

c++ - C++11 类型检查代码的奇怪编译器警告

c++ - 如何在gentoo上编译Mellanox libvma?

c++ - 重命名(别名)数组元素 C