大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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
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 -lgtest
或 cannot find -lgtest_main
错误
找不到libgtest.a
或libgtest_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.txt
中add_executable
与target_link_libraries
中的名字修改短后再进行cmake与make,能够成功编译;
6、出现multiple definition of main
错误
多次定义main函数导致的,如在CmakeLists.txt
中调用了libgtest_main.a
动态库,而在其他cpp文件中也出现了main函数,就会导致两次定义;
若想自己定义gtest的main函数,则在编写CMakeLists.tx
t时不引用libgtest_main.a
动态库;
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/187943.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...