You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CLion运行Stepik项目时出现'dummy' may be used uninitialized报错如何解决

报错原因

这个编译失败是旧版GoogleTest与高版本GCC/Clang编译器的兼容性问题:你项目内置的GoogleTest版本源码中,gtest-death-test.cc文件里定义了未初始化的局部变量dummy,高版本编译器会检测出「变量可能未初始化使用」的警告,而项目编译配置默认开启了-Werror参数,所有警告都会被当做错误处理,因此直接终止编译。

解决方案
  • 方案1:添加忽略该类警告的编译参数
    打开项目根目录的CMakeLists.txt文件,在引入GoogleTest依赖的代码段之前添加如下配置:
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-maybe-uninitialized")
    
    若全局加参数不生效,可以单独给GoogleTest的编译目标加私有参数,在add_subdirectory导入GoogleTest源码的语句后补充:
    target_compile_options(gtest PRIVATE -Wno-maybe-uninitialized)
    target_compile_options(gtest_main PRIVATE -Wno-maybe-uninitialized)
    
    修改完成后清空CMake缓存重新构建:在CLion顶部菜单栏选择File > Reload CMake Project即可。
  • 方案2:升级GoogleTest版本
    这个未初始化变量的问题在GoogleTest 1.12.0及以上版本已经被官方修复,将项目内置的GoogleTest源码替换为新版本即可彻底解决问题,无需修改编译参数。
  • 方案3:临时关闭警告转错误配置(仅应急使用)
    若只是临时运行作业不需要长期维护配置,可以在CMakeLists.txt中添加如下配置,关闭「警告视为错误」的编译规则:
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error")
    

内容的提问来源于stack exchange,提问作者Gergő Szabó

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 21:45:04