ubuntu使用googletest遇到的问题

最近被一个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.csdn.net/l1216766050/article/details/77513045

3 重新安装googletest,目前这篇参考文件https://blog.csdn.net/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.csdn.net/qq_22764813/article/details/83378457方法并为解决。采用以下方法可完整安装,亲测有效:

https://blog.csdn.net/qq_26437925/article/details/68947498

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

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

 

 

 

 

 

 

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值