得到错误而不是不兼容的指针类型警告

Posted

技术标签:

【中文标题】得到错误而不是不兼容的指针类型警告【英文标题】:get error instead of incompatible pointer type warning 【发布时间】:2010-02-18 08:15:46 【问题描述】:

在 C 程序中,我收到“从不兼容的指针类型传递参数”警告,但是我想收到错误并终止编译而不是警告。

我应该在 makefile 中设置什么标志?

【问题讨论】:

【参考方案1】:

如果使用gcc,我认为你需要的选项组合是-fstrict-aliasing -Wstrict-aliasing=3 -Werror=strict-aliasing。有关strict-aliasing 选项的文档,请参阅this text。

【讨论】:

对于 gcc 4.6.3 仍然报告警告而不是错误。顺便说一句,在那个文档中,他们说-Wstrict-aliasing=1 将触发不兼容的指针类型警告。【参考方案2】:

如果您使用 gcc,请添加 -Werror 标志。

【讨论】:

但我只需要那种类型的警告,而不是全部 您不能选择仅将某些警告视为错误。要么全有,要么全无。 你可以选择特定的警告变成像-Werror=format这样的错误(那个id来自gcc输出warning: format ‘%s’ expects a matching ‘char *’ argument [-Wformat])。但不幸的是,对于 gcc 4.6.3,我得到了incompatible pointer type [enabled by default]。所以看起来-Werror 在这种情况下是唯一的方法。我使用@lee answer 的方法将一些错误转回警告(如-Wno-error=format)。【参考方案3】:

我也有同样的问题。上面的建议没有奏效,更接近的是

gcc -Werror -Wno-error=all

【讨论】:

以上是关于得到错误而不是不兼容的指针类型警告的主要内容,如果未能解决你的问题,请参考以下文章

指针类型不兼容??奇怪的

收到有关不兼容指针类型的警告

自定义 UITableViewCell 的不兼容指针类型警告

qsort 的第四个参数的“不兼容的指针类型”编译器警告

在 iOS 7 之前的项目中编译警告“不兼容的指针类型初始化 'UIImage *' 使用类型为'CIImage * _Nullable”的表达式

使用 UItableViewCell 类型的表达式初始化“CustomCellView *”的不兼容指针类型