【发布时间】: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标志。