gpt4 book ai didi

clang - 如何在源文件中禁用 clang 未使用的命令行参数错误

转载 作者:行者123 更新时间:2023-12-05 07:29:23 36 4
gpt4 key购买 nike

当我在xcode中编译.c文件时,出现错误提示:

clang error: argument unused during compilation: '-fno-objc-exceptions' [-Werror,-Wunused-command-line-argument]

我可以将额外的命令“-Wno-unused-command-line-argument”附加到 clang 命令行以禁用此警告。但我想知道是否可以在 .c 文件中禁用它,所以我添加了 #pragma,如下所示:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-command-line-argument"
...
#pragma clang diagnostic pop

但是失败了。

那么,如何在源文件中准确地禁用这个警告呢?

最佳答案

您不能通过在 .c 源代码中写入的任何内容来抑制此诊断文件,因为已经检测到诊断的原因并发出了诊断在读取 .c 源文件之前,您可以通过此源文件观察到:

失败.c

#error Stop right here

和:

$ clang -c -fno-objc-exceptions fail.c
clang: warning: argument unused during compilation: '-fno-objc-exceptions' [-Wunused-command-line-argument]
fail.c:1:2: error: Stop right here
#error Stop right here
^
1 error generated.

诊断的原因是 -fno-objc-exceptions 只是一个选项适用于 Objective C 或 Objective C++ 的编译,clang 推断我们是编译 C,而不是 Objective 或 Objective C++,只是因为文件名 fail.c 具有扩展名.c,不是 .m.mm

关于clang - 如何在源文件中禁用 clang 未使用的命令行参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52830308/

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