CentOS系统编译googletest示例项目执行make报错如何解决
googletest编译失败问题解决方案
1 CMake变量未使用警告修复
该警告是因为变量名不匹配新版本googletest的CMake配置:
- 如果你需要编译官方示例,将cmake参数中的变量替换为
BUILD_GTEST_SAMPLES,正确写法为cmake -DBUILD_GTEST_SAMPLES=ON .. - 如果你不需要编译示例,直接忽略该警告即可,不影响gtest核心库的编译
2 is_trivially_copy_constructible不是std成员编译错误修复
该报错核心原因是当前拉取的googletest主分支最低要求C14标准,而默认编译配置未启用对应版本的C标准,二选一执行以下方案即可:
方案1:指定C++标准编译
执行cmake时添加C++标准参数,完整命令为:cmake -DCMAKE_CXX_STANDARD=14 -DBUILD_GTEST_SAMPLES=ON ..
重新执行make即可完成编译。
方案2:切换到兼容低版本标准的稳定分支
如果你需要兼容C++11标准,可以切换到v1.12.1稳定版本:
- 在googletest顶层目录执行:
git checkout v1.12.1 - 清空mybuild目录下的所有缓存文件:
rm -rf ~/Test/googletest/mybuild/* - 回到mybuild目录重新执行cmake和make:
cmake -DBUILD_GTEST_SAMPLES=ON .. make
注意事项
- 确认编译前已激活gcc 9.3.1环境:如果你是通过devtoolset安装的gcc9,执行
source /opt/rh/devtoolset-9/enable激活后再执行编译操作 - 每次调整编译参数前都要清空mybuild目录下的旧缓存,避免历史配置干扰
内容的提问来源于stack exchange,提问作者Hughes
相关产品推荐
相关产品推荐

