4

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

... is a GNU extension

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

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

4

1 回答 1

8

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

在此处输入图像描述

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

在此处输入图像描述

于 2012-10-06T03:35:42.587 回答