Ger*_*abó 4 c++ g++ cmake clion
我在运行 clion 项目 stepik 文件时遇到问题。不断出现以下错误。我有一个编译器,我可以运行其他代码,但有些代码不起作用。
\nIn file included from /home/gergoszabo/CLionProjects/Prog2_08/test-framework/googletest-src/googletest/src/gtest-all.cc:42:\n/home/gergoszabo/CLionProjects/Prog2_08/test-framework/googletest-src/googletest/src/gtest-death-test.cc: In function \xe2\x80\x98bool testing::internal::StackGrowsDown()\xe2\x80\x99:\n/home/gergoszabo/CLionProjects/Prog2_08/test-framework/googletest-src/googletest/src/gtest-death-test.cc:1224:24: error: \xe2\x80\x98dummy\xe2\x80\x99 may be used uninitialized [-Werror=maybe-uninitialized]\n 1224 | StackLowerThanAddress(&dummy, &result);\n | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~\n/home/gergoszabo/CLionProjects/Prog2_08/test-framework/googletest-src/googletest/src/gtest-death-test.cc:1214:13: note: by argument 1 of type \xe2\x80\x98const void*\xe2\x80\x99 to \xe2\x80\x98void testing::internal::StackLowerThanAddress(const void*, bool*)\xe2\x80\x99 declared here\n 1214 | static void StackLowerThanAddress(const void* ptr, bool* result) {\n | ^~~~~~~~~~~~~~~~~~~~~\n/home/gergoszabo/CLionProjects/Prog2_08/test-framework/googletest-src/googletest/src/gtest-death-test.cc:1222:7: note: \xe2\x80\x98dummy\xe2\x80\x99 declared here\n 1222 | int dummy;\n | ^~~~~\ncc1plus: all warnings being treated as errors\ngmake[3]: *** [../test-framework/googletest-build/googlemock/gtest/CMakeFiles/gtest.dir/build.make:72: ../test-framework/googletest-build/googlemock/gtest/CMakeFiles/gtest.dir/src/gtest-all.cc.o] Error 1\ngmake[2]: *** [CMakeFiles/Makefile2:587: ../test-framework/googletest-build/googlemock/gtest/CMakeFiles/gtest.dir/all] Error 2\ngmake[1]: *** [CMakeFiles/Makefile2:1394: lesson1/labbeli/CMakeFiles/global-lesson1-labbeli-test.dir/rule] Error 2\ngmake: *** [Makefile:598: global-lesson1-labbeli-test] Error 2\n
Run Code Online (Sandbox Code Playgroud)\n
这个问题不在你自己的项目中,而是在它似乎正在使用的库中:GoogleTest。
您当前使用的 GoogleTest 版本在使用 GCC 11 编译时存在问题。GCC 会发出此警告(由于各种复杂的原因)。GoogleTest 已配置编译器给出的任何警告都应被视为错误。因此,当 GCC 遇到该警告时,它将停止编译。
这不是你的错误,而是由 GoogleTest 来修复。此处已进行修复并合并:https://github.com/google/googletest/pull/3024
更新 GoogleTest 以使用版本 1.11.0 或更高版本应该可以解决该问题。