带有“#”的 Clang 诊断标志会导致构建错误

Posted

技术标签:

【中文标题】带有“#”的 Clang 诊断标志会导致构建错误【英文标题】:Clang diagnostic flag with '#' causes a build error 【发布时间】:2021-01-03 15:44:42 【问题描述】:

在我的 cmake 文件中,我需要添加一个包含 # 的 clang 诊断标志,如 diagnostic flags 的 clang 文档中所示。

但是cmake# 解释为备注并失败。

例如:

add_definitions(-W#pragma-messages)

被解释为:

add_definitions(-W

应该如何在 cmake 脚本中使用此标志?

【问题讨论】:

您是否已经尝试将参数括在引号中,即add_definitions("-W#pragma-messages") 有效!我不知道你可以附上选项,而且在编译器选项中包含井号似乎也很尴尬......无论如何,请发表评论作为回复。 【参考方案1】:

在 CMake 中,# 字符之后直到行尾的所有内容都被视为注释。

为了防止您的编译定义和选项出现这种行为,您需要引用整个参数

add_definitions("-W#pragma-messages")

【讨论】:

以上是关于带有“#”的 Clang 诊断标志会导致构建错误的主要内容,如果未能解决你的问题,请参考以下文章