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动态库;

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 网络机房效果图制作|步骤技术分享[通俗易懂]

    网络机房效果图制作|步骤技术分享[通俗易懂]首先看图,这个图是人视角度,两侧显露出来的空间很大,注重表现的是两侧的机柜,包含列头柜,精密空调及上方的冷通道。第一步:客户肯定得提供图纸类的资料,如CAD图纸,或是手绘的平面布置图等。这里面需要包含机房的数量,排列组合为止或是模块化设置。第二步:拿到资料,和客户沟通之后,首先要明白客户表现的是什么效果,哪个地方是侧重点等。第三步:沟通完了就需要进行下一步,就是如果客户提供了…

  • 二、快速开始——Spring集成Mybatis-Plus

    二、快速开始——Spring集成Mybatis-Plus由于MyBatis-Plus是在MyBatis的基础上只做增强不做改变,因此其与Spring的整合非常简单。只需把MyBatis的依赖换成MyBatis的依赖,再把sqlSessionFactory换成MyBatis-Plus的即可。下面让我们在Spring中快速集成Mybatis-Plus的具体操作:1、准备测试表–创建库CREATEDATABASEmp;–使用库USEm…

  • window 启动tomcat闪退 查看日志方法

    window 启动tomcat闪退 查看日志方法window启动tomcat闪退查看日志方法找到bin下面的startup.bat用文本方式打开找到末尾start改为run然后打开cmd窗口cd到tomcatbin路径执行startup.bat下图本来该报错会闪退,catalina日志文件也没记录该报错,导致我们看不到报错信息,设置后可清晰看到报错原因,端口号超出范围,改小就行了…

  • Java判断闰年

    Java判断闰年importjava.util.Scanner;/**判断某一年是否为闰年*通过Scanner输入一个年份,然后判断该年是否是闰年*闰年判断标准(满足任何一个)*1.如果能够被4整除,但是不能被100整除*2.能够被400整除*/publicclassHelloWorld{ publicstaticvoidmain(String[]args){ while(true) { System.out.println(“请输入年份:”); Scanner

  • adb工具+使用adb安装apk「建议收藏」

    adb工具+使用adb安装apk「建议收藏」adb链接:https://pan.baidu.com/s/1pdpIc9oXaqvN4lSrVLR_VA提取码:kxhc使用方法:1.解压压缩包。2.将解压后的文件夹放到合适的目录(我放到了C盘根目录)3.打开windows命令窗口,设置到adb工具目录(cdC:\adb)4.使用adb命令查看链接到的计算机的android设备(adbdevices)5.使用…

  • 教你在Ubuntu上体验Mac风格

    教你在Ubuntu上体验Mac风格

发表回复

您的电子邮箱地址不会被公开。

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