带有“#”的 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 诊断标志会导致构建错误的主要内容,如果未能解决你的问题,请参考以下文章
当我使用 CMake 和 ninja 构建时,clang++ 会忽略 -MD 标志
ld:在带有 gcc/clang -static 标志的 OSX 10.6 上找不到 -lcrt0.o 的库