CLion中无法禁用的不同枚举类型位运算弃用警告如何解决?
解决CLion中不同枚举类型位运算的废弃警告
先确认警告来源
首先区分是编译器警告还是CLion自带的静态分析警告:
- 编译项目时查看控制台输出,如果控制台也出现该警告,属于编译器警告;
- 仅CLion编辑器内显示警告,编译无提示,属于CLion静态分析警告。
情况1:编译器警告
针对GCC/Clang编译器
该警告对应的编译选项是-Wdeprecated-enum-enum-conversion,在CMake中添加:
target_compile_options(engine PRIVATE -Wno-deprecated-enum-enum-conversion)
针对MSVC编译器
你之前的参数格式错误,MSVC使用斜杠/而非短横线-作为参数前缀,且需用引号包裹避免CMake解析问题,修改为:
target_compile_options(engine PRIVATE "/wd5054")
情况2:CLion静态分析警告
方法1:全局禁用对应检查项
- 打开
Settings/Preferences(Windows/Linux按Ctrl+Alt+S,Mac按Cmd+,) - 进入
Editor→Inspections - 在搜索框输入
bitwise operation between different enumeration types,找到对应检查项 - 取消勾选该选项,点击
Apply保存
方法2:针对外部库目标禁用静态检查
如果警告来自外部库,不想全局禁用检查,可在CMake中找到外部库的目标(比如external_lib),添加:
set_target_properties(external_lib PROPERTIES CXX_CLANG_TIDY "")
这会禁用该外部库目标的所有CLion静态分析检查。
内容的提问来源于stack exchange,提问作者traveh
相关产品推荐
相关产品推荐

