如何禁用“不支持优化标志”的clang警告

Posted

技术标签:

【中文标题】如何禁用“不支持优化标志”的clang警告【英文标题】:How to disable clang warning of 'optimization flag is not supported' 【发布时间】:2019-03-01 20:11:37 【问题描述】:

需要使用选项编译我的源文件

clang++ ... -flto -fno-fat-lto-objects foo.cpp

这会产生以下输出

警告:不支持优化标志“-fno-fat-lto-objects”

是否有人知道一个额外的标志或类似的东西,可以传递给编译器并抑制这个警告?

谢谢!

【问题讨论】:

如果编译器不支持,为什么还要用这个选项编译呢?如果您添加该选项,您为什么期望它会有所作为? 是的,我可以删除该标志,但此标志是由进程自动添加的,我不想在此设置中更改某些内容 您可以创建一个 thunk myclang++ 脚本,查看每个参数并抛出坏苹果,然后使用其余参数调用 clang++。 例如对于未使用的参数,我可以添加 -Qunused-paramters 和 clang supress/quiets 这个警告。我搜索了相同的不支持的优化标志警告。 我不知道有任何 CLang 标志会让它默默地吞下它不理解的选项,我也不认为拥有这样的标志通常是一个好主意。不过,您可以使用包装脚本。 【参考方案1】:

-Wno-ignored-optimization-argument 选项应该可以工作。详情见-Wignored-optimization-argument:

默认情况下启用此诊断。

诊断文本:

警告:目标“B”不支持优化标志“A” 警告:不支持优化标志“A”

【讨论】:

一般来说,答案如果包含对代码或命令的用途以及解决问题的原因的解释会更有帮助。 这个标志对我不起作用。我使用 clang-tidy 作为 GCC 构建的 cmake co_compile 作业,因此我需要取消此标志。

以上是关于如何禁用“不支持优化标志”的clang警告的主要内容,如果未能解决你的问题,请参考以下文章

使用 LLVM/Clang 忽略特定文件中的所有警告

如何在 VS2017 中禁用“警告 MSB8051:不支持针对 Windows XP 的支持”?

Emscripten:如何禁用警告:显式专业化不能有存储类

为啥 clang 无法展开循环(即 gcc 展开)?

如何通过 .xcconfig 禁用特定的 clang 诊断?

如何正确禁用包括按clang格式排序?