ubuntu使用googletest遇到的问题

本文详细记录了解决CMake与GoogleTest兼容性问题的过程,包括错误排查、CMake版本冲突解决及GoogleTest正确安装的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近被一个googletest的使用憋了三天,后来悲催的发现和gtest没有关系,原来是cmake的原因。记录一下,希望以后不要再犯。

问题描述:

调用gtest方法:

aux_source_directory(. DIRSRCS)
enable_testing()
find_package(GTest REQUIRED)
add_executable(test-sample ${DIRSRCS})
message("$CMAKE_THREAD_LIBS_INIT")
target_link_libraries(
    test-sample GTest::GTest GTest::Main sender receiver
    adframework adpublic log4cxx rt boost_thread
    ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES}
)
add_test(NAME sampleTest COMMAND test-sample)

使用cmakelist调用googletest报错如下:

cannot find -lGTest::GTest

cannot find -lGTest::GMain

问题的解决:

本以为是libgtest.a libgtestmain.a 安装路径不对,或是没有安装成功。后来发现排查错误发现一切正常。

再检查发现安装了cmake的多个版本,导致gtest库找不到。

1 完整卸载所有版本的cmake,记住,必须要完整。卸载方法如下:

(1) sudo apt-get remove cmake

(2) sudo apt purge cmake*

(3) sudo apt-get autoremove cmake (该语句用来卸载掉老的版本)

(4) 删除usr/local/lib下面的cmake_x.x文件夹(例如cmake_3.5),这个是为了卸载掉编译的版本,

/usr/local/share/cmake* 、/usr/local/bin/cmake*等,执行以下命令:

sudo rm -rf /usr/local/share/cmake*

完全删除后,通过以下语句查看是否卸载完整:

cmake --version

如果失败,则证明卸载完成。

2 安装cmake,试验了集中方法,这个博客介绍的最靠谱:https://blog.youkuaiyun.com/l1216766050/article/details/77513045

3 重新安装googletest,目前这篇参考文件https://blog.youkuaiyun.com/ljttianqin/article/details/78543235的安装方法一直报错:

/usr/include/c++/5/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
使用https://blog.youkuaiyun.com/qq_22764813/article/details/83378457方法并为解决。采用以下方法可完整安装,亲测有效:

https://blog.youkuaiyun.com/qq_26437925/article/details/68947498

以上步骤完成后,即可实现结局上面的问题。11:58分解决的,兴奋了好久没睡着。

希望对遇到和我一样的问题的人有所帮助。

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值