GTest问题_itest.n z

GTest问题_itest.n z1、cmkae出现”C:/Users/xxx/gcc/bin/gcc.exe”isnotabletocompileasimpletestprogram.问题在camke时添加-DCMAKE_C_COMPILER=gcc,-DCMAKE_C_COMPILER=gcc-DCMAKE_CXX_COMPILER=g++,-DCMAKE_MAKE_PROGRAM=make指定gcc、g++与make2、测试私有成员函数出现__xfer_bufptrsredeclaredwithdif

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

1、cmkae出现"C:/Users/xxx/gcc/bin/gcc.exe"is not able to compile a simple test program.问题

  • 在camke时添加-DCMAKE_C_COMPILER=gcc-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++-DCMAKE_MAKE_PROGRAM=make指定gcc、g++与make

2、测试私有成员函数出现__xfer_bufptrs redeclared with different access

添加以下代码,注意==不要包含gtest/gtest.h头文件==,若多包含可能会出现struct std::__cxx11::basic_stringbuf<_CharT, _Traits, _Alloc>::__xfer_bufptrs' redeclared with different access错误

#define private public
#define protected public
#undef private
#undef protected

为啥不能#define private public了?

3、make时,测试cpp文件出现 未定义 被测试cpp文件 的函数 undefined reference to Update(int const&)'

主要原因就是被测cpp文件是个孤立的文件
对应在CMakeLists.txt中即问题出在编写CMakeLists.txt时未包含被测cpp文件或者未正确包含被测cpp文件

  • 如:set(SOURCES src/function/environment/vehicle.cpp )
    路径不对导致找不到被测cpp文件

4、出现cannot find -lgtestcannot find -lgtest_main 错误

找不到libgtest.alibgtest_main.a造成的,检查CMakeLists.txt中的link_directories所包含的libgtest.a libgtest_main.a路径是否正确

5、CMakeLists.txt发出The maximum full path to an object file is 250 characters 警告

CMake Warning in CMakeLists.txt:
  The object file directory C:/Users/xxx/Desktop/WR/code/xxx/test/test_xxxx.cpp/
test_xxxx/build/CMakeFiles/gtest_xxxx.dir/ has 186 characters. 
  The maximum full path to an object file is 250 characters (see CMAKE_OBJECT_PATH_MAX). 
Object file C_/Users/xxx/Desktop/WR/code/xxx/test/test_xxx.cpp/test_xxxx/test_xxxx.cpp.obj  cannot be safely placed under this directory. The build may not work correctly.

可能是由于你的名字取的太长了,导致不能完整放下,后面在make时会出现错误

fatal error: opening dependency file CMakeFiles\gtest_xxx.dir\C_\Users\xxx\Desktop\WR\code\xxx\test\test_xxx.cpp\test_xxxx\test_xxxx.cpp.obj.d: No such file or directory 
   68 | }
      | ^
compilation terminated.

我将CMakeLists.txtadd_executabletarget_link_libraries中的名字修改短后再进行cmake与make,能够成功编译;

6、出现multiple definition of main错误

多次定义main函数导致的,如在CmakeLists.txt中调用了libgtest_main.a动态库,而在其他cpp文件中也出现了main函数,就会导致两次定义;
若想自己定义gtest的main函数,则在编写CMakeLists.txt时不引用libgtest_main.a动态库;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187943.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm的配置_pycharm添加编译器

    pycharm的配置_pycharm添加编译器一、Pycharm简介与安装简介Pycharm与VScode一样,都可以作为python的可视化IDE,功能很强大,可以帮助我们提高编程的效率。包括调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制等。安装作为一个穷孩子,建议还是安装社区免费版,因为社区免费版与专业版无差别,功能是齐全的。安装地址在这里!二、Pycharm配置作为python编程的ID…

    2022年8月28日
    0
  • CSS设置超链接样式常用

    CSS设置超链接样式常用伪类名称 含义 示例 a:link 未单击访问时超链接样式 a:link{color:#9ef5f9;} a:visited 单击访问后超链接样式 a:visited{color:#333;} a:hover 鼠标悬浮其上的超链接样式 a:hover{color:#…

    2022年7月19日
    13
  • hdu1796 How many integers can you find

    hdu1796 How many integers can you find

    2022年1月8日
    40
  • css 100% 和 100vh区别

    css 100% 和 100vh区别100%是相对于父元素100vh是相对于window

    2022年6月6日
    150
  • 金融大数据风控模型「建议收藏」

    金融大数据风控模型「建议收藏」https://www.secrss.com/articles/27699导读:金融是AI赋能传统行业的重要赛道。本次分享的主要内容为金融大数据风控模型在度小满金融的实践。主要介绍金融大数据风控模型的主要技术方法与在应用层面的主要问题,并结合新冠疫情背景下,探讨下风控模型的发展。01金融大数据风控模型的技术方法1.风险管理中的金融科技风险管理中的金融科技主要包括两个方面:一方面是传统金融的风险管理,包括: A卡(ApplicationScorecard,申请评分卡) .

    2022年6月9日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号