在cmake中使用gtest作为单元测试工具踩坑记录

1.编译报错

[build] D:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/14.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/14.2.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a(lib64_libmingw32_a-ucrt_exit_wrappers.o):ucrt_exit_wrappers.c:(.rdata$.refptr.__imp__Exit[.refptr.__imp__Exit]+0x0): undefined reference to `__imp__Exit'
[build] D:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/14.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/14.2.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a(lib64_libmingw32_a-ucrt_exit_wrappers.o):ucrt_exit_wrappers.c:(.rdata$.refptr.__imp_quick_exit[.refptr.__imp_quick_exit]+0x0): undefined reference to `__imp_quick_exit'

该问题是编译器缺失了一些导出库,我通过更新编译器解决了该问题。

2.Can not found: ../DartConfiguration.tcl

添加include(Dart)即可,不过Dart已经被废弃了,不建议使用。

3.CTest找不到测试结果

这是因为将enable_testing()放到了子目录下,导致CTest的寻找路径错误了,可以在根目录中这么写:

if (BUILD_TESTS)
    enable_testing()
    add_subdirectory(test)
endif()
posted on 2026-01-04 06:46  TN-mo  阅读(2)  评论(0)    收藏  举报