【问题标题】:Xcode warning: ... is a GNU extensionXcode 警告:... 是 GNU 扩展
【发布时间】:2012-10-06 02:30:32
【问题描述】:

我将 C++ 库用于 iOS 应用程序。配置 Apple LLVM 3.1 编译器(默认)后,我收到了很多关于此 C++ 代码的警告,其中大部分是这样说的:

... is a GNU extension

clang的用户手册介绍说: Clang 驱动程序和语言功能被有意设计为尽可能与 GNU GCC 编译器兼容,从而简化从 GCC 到 Clang 的迁移。在大多数情况下,代码“正常工作”。

那么,只是寻找一个开关来禁用这个警告(顺便说一句。怎么做?)还是我应该更好地让这个库摆脱所有 GNU 扩展?

【问题讨论】:

  • 它们是警告而不是错误,所以忽略它们?

标签: ios llvm clang gnu


【解决方案1】:

您可以使用编译器标志来抑制警告。 Clang 告诉您每个警告使用哪个编译器标志。构建后,选择 View > Navigator > Show Log Navigator。然后从日志导航器中选择最新的构建日志。找到带有警告的文件,然后单击其状态行右端的披露按钮。 Xcode 将显示该文件的编译器命令行和输出。每个警告都应包含启用警告的编译器标志。示例:

在我的示例中,警告标志是-Wpointer-arith。因此,-Wno-pointer-arith 可以禁用警告。所以我可以将该标志添加到“其他警告标志”构建设置中:

【讨论】:

  • 还在使用 GNU 的 MAX/MIN 时添加 -Wno-gnu 隐藏警告。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-29
  • 2016-01-20
  • 1970-01-01
  • 1970-01-01
  • 2015-12-14
  • 1970-01-01
相关资源
最近更新 更多