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)


相关推荐

  • MPI_多节点执行程序[通俗易懂]

    MPI_多节点执行程序[通俗易懂] 有的时候MPI需要使用多节点,那么测试哪些进程在哪些机器上就比较重要,如下可以简单测试一下。#include&lt;unistd.h&gt;#include&lt;stdio.h&gt;#include&lt;mpi.h&gt;intmain(intargc,char*argv[]){charhostname[100];intrank,size;…

  • 开源 网管 工具_网管软件

    开源 网管 工具_网管软件Nagios:最大的亮点是轻量灵活,且报警机制很强,如果你只是需要监控服务器/服务是否在运行,Nagios以前只是从目标主机收集信息,,并且有很强大的发送报警信息的功能。适合监视大量服务器上面的大批服务是否正常,重点并不在图形化的监控,其集成的很多功能例如报警,都是cacti没有或者很弱的.cacti主要用途还是用来收集历史数据和画图,所以界面比nagios漂亮很多cact

  • 我的Android重构之旅:插件化篇

    我的Android重构之旅:插件化篇

  • sublime text3的激活成功教程和使用

    sublime text3的激活成功教程和使用个人博客:ZJBLOG之所以想用这个是因为最近在学Python不知道用啥ide好,看同事说这个不错就了解了下,已经有的notepad++感觉不太好编程吧,做记事本就行了,atom又感觉太卡了,打开慢的要死,加了一些特效插件后也卡。。所以试一下这个。首先安装sublimetext3(好像这个版本比2好就选择这个了)安装直接官网下载就行了官网地址:http://www.sublime…

  • C/C++指针详解之基础篇(史上最全最易懂指针学习指南!!!!)「建议收藏」

    C/C++指针详解之基础篇(史上最全最易懂指针学习指南!!!!)「建议收藏」目录一.变量的内存实质到1.1变量的实质1.2赋值给变量1.3变量在哪里?二.指针是个什么东西?三.二级指针(指针的指针)3.1定义与初始化3.2间接数据访问3.2.1.改变一级指针指向3.2.2改变N-1级指针的指向3.2.3二级指针的步长四.指针与数组4.1指针与数组名4.1.1通过数组名访问数组元素4….

  • 编程实用工具大全(前后端皆可用,不来瞅瞅?)

    编程实用工具大全(前后端皆可用,不来瞅瞅?)从事:Python,前端,Java,C,C++,R,Javascript,C#,Matlab,Swift,Go,数据库等领域的都适合。目录1.Snipaste2.命名神器codelf3.渐变色神器4.CSS阴影效果神器5.数据结构可视化6.Buttons7.CSS在线设计按钮8.颜色码转换工具9.HTML颜色代码10.HTTP状态代码11.Iconfont矢量图标库12.JSON字符串格式化13.数据库大全个人主页:…

发表回复

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

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