gpt4 book ai didi

xcode - 在 Xcode 5.1.1 中使用 --system-header-prefix — 我错过了什么

转载 作者:行者123 更新时间:2023-12-04 17:20:33 25 4
gpt4 key购买 nike

Clang’s documentation提到了一个名为 --system-header-prefix 的标志的可用性.

想法是所有包含的与此前缀匹配的 header 都将被视为系统 header ,而不是生成警告。

我想使用这个标志,而不是使用 -isystem 包含那些标题而不是 -I .

背景

我碰巧有一个(新)项目,它依赖于几个遗留库,但它本身具有非常严格的警告设置,并将这些警告视为错误。
结果是(不足为奇)一个项目由于包含的 legacy-library 的 header 生成的警告而无法构建。

这个想法是使用 --system-header-prefix=legacyLib/在 Xcode 的 OTHER_CFLAGS 中build设置。

但是,如果我这样做,clang 会给我以下错误消息:

clang: error: unsupported option '--system-header-prefix=legacyLib/'

我正在使用版本 5.1.1 (5B1008) — 即当前的公开版本。
clang --version的输出是
clang --version
Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
Target: x86_64-apple-darwin13.1.0
Thread model: posix

最佳答案

您指的是 Clang 3.5 文档。在 Clang 3.4 User's Manual此选项称为 -isystem-prefix .该选项已重命名为 --system-header-prefix in r204775, 2.5 months after 3.4 release .

所以你必须使用 -isystem-prefix选项,但没有说明是 cc1选项,所以你必须像这样使用它

clang -I ./nested -Xclang -isystem-prefix -Xclang legacyLib/ test.c
-Xclang用于将下一个选项传递给 cc1 .顺便说一句,我注意到如果 legacyLib/ 警告不会被抑制与 test.c 在同一目录中.我不知道这是不是一个错误,但如果你不同意我的观点,请 file a bug report .上一个命令适用于以下目录结构
<working directory>
|- test.c, which has #include "legacyLib/header.h"
`- nested/
`- legacyLib/
`- header.h, which has warnings

为了将来引用,Clang 3.5 支持 --system-header-prefix ,即以下命令有效(使用 clang 版本 3.5.0 (trunk 207361) 检查)
clang -I ./nested --system-header-prefix legacyLib/ test.c

关于xcode - 在 Xcode 5.1.1 中使用 --system-header-prefix — 我错过了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23337607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com