【问题标题】:Ignore warnings from framework headers on OS X忽略 OS X 上框架头文件中的警告
【发布时间】:2012-04-26 14:13:03
【问题描述】:

当在我的 C++ 项目中包含外部库头文件时,我可以使用 -isystem 标志而不是 -I(至少对于 GCC 或 Clang)将特定的包含目录标记为系统库目录。这样编译器就不会报告任何关于外部库代码的警告。

有没有办法使用 OS X 框架标头来执行此操作,这些标头不使用 -I 标志传递给编译器,而是使用指向框架所在目录的 -F 标志传递给编译器?

示例

编译命令:

clang++ -F/Users/user/CustomFrameworks -o test.o -c test.cpp

test.cpp

#include <Framework/Header.h>
// ....

框架结构:

$ ls /Users/user/CustomFrameworks
Framework.framework
$ ls /Users/user/CustomFrameworks/Framework.framework/Headers
Header.h

如何忽略来自Header.h 的警告?

如果可能的话,我宁愿不在我的代码中放置任何编译器特定的编译指示。

【问题讨论】:

  • 在另一个维度,编译器满足可用性和约定,我敢肯定只有-fsystem 标志。

标签: c++ xcode macos gcc clang


【解决方案1】:

使用-iframework 标志。有时阅读man-pages 会有所帮助...

【讨论】:

  • 是的,我最终只阅读了 clang 的文档,因为它是当前默认的 Xcode 编译器。 Shame clang 不支持这个标志(还没有?)。
  • 你试过了吗? clang 手册页非常不完整,并且支持大多数 gcc 标志。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-28
  • 2013-07-10
  • 2018-08-29
  • 2012-06-06
  • 1970-01-01
  • 2019-05-26
相关资源
最近更新 更多