我正在尝试在 C++ 命令行项目中的 Xcode 4(使用 LLVM 2.0/clang 作为编译器)中设置 header 搜索路径,以便我可以通过 #include <foo>
包含库头文件.
如果我在build设置“标题搜索路径”下包含搜索路径,则可以找到标题。不幸的是,我也用 -Werror
进行编译严格的警告级别和有问题的 header 会导致编译错误。
因此,我将通过 -isystem
包含 header 搜索路径为了禁用此库头的警告。但是,我无法在 Xcode 4 中找到相应的build设置。“标题搜索路径”和“用户标题搜索路径”都不起作用。
Xcode 不支持 -isystem
旗帜?
最佳答案
正如您所指出的,-isystem
是 gcc
处理系统包含目录的方式,与 -I
目录不同, >-isystem
将会抑制警告,并且您从系统获得的各种其他行为包括路径。
Xcode 可能并不明显,但 Xcode 4.3 提供的基于 llvm 的类 gcc 编译器确实支持此选项,就像 gcc 一样。这似乎是一个常见的神话,它没有(毫无疑问,因为它过去没有),甚至 CMake (2.8.7) 仍然继续避免使用 -isystem
选项Xcode。
对于那些手动制作 Xcode 项目的人来说,项目设置中的“标题搜索路径”(而不是“用户标题搜索路径”)也将起作用,正如您所提到的,如果您不这样做,可能会更容易不要使用 CMake 之类的东西来构建您的 Xcode 项目。
关于include - 在 Xcode 4 中设置系统搜索路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6322564/