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

Clang diagnostic flag with '#' causes a build error

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

的 clang 文档中所示

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

例如:

add_definitions(-W#pragma-messages)

解释为:

add_definitions(-W

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

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

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

add_definitions("-W#pragma-messages")