windows 下使用CMake 配置 googletest测试库
这个项目实际包含的知识细节,可以在微软的网站找到支持:
1 . 安装googletest.
下载,解压, googletest
进入开发者模式 cmd 界面: Developer Command Prompt for VS 2022
编译,安装googletest
# 在解压后的目录下 mkdir build cd build
# 准备安装在d:/googletest cmake -S .. -B . -G "NMake Makefiles" -DCMAKE_INSTALL_PREFIX=d:/googletest nmake nmake install
注意:这里由于是采用vs2022的 32位编译器,
编译好的结果也是debug版本的。
(这是由nmake 版本决定的,可以看到在nmake.exe 有至少4个版本 Hostx86\x86 Hostx86\x64 Hostx64\x86 Hostx64\x64)
(打入:where nmake , 看看nmake 运行所在目录。)
将d:/googletest/lib 加入到系统环境变量中,以后测试需要googletest的lib 库可以直接查找到
如果没有编译和安装,也可以使用google的源文件和头文件来使用googletest. 具体方法可以参见QT的缺省设置测试模板。
重点:
安装后的路径:d:/googletest 下有lib 和 include 两个子目录。 debug模式编译和release 模式编译的 lib 可以放在两个不同目录下:
关乎到下一步GTEST_LIBRARY的设置。
2. 配置:CmakePresets.json
在其中增加cacheVariables:
"GTEST_ROOT": "D:/googletest",
"GTEST_LIBRARY": "D:/googletest/lib/gtestd.lib",
"GTEST_MAIN_LIBRARY": "D:/googletest/lib/gtest_maind.lib",
3. 在项目的CMakeLists.txt 中增加:
find_package(GTest REQUIRED) add_executable (CMakeProject1 "CMakeProject1.cpp" "CMakeProject1.h") target_compile_options( CMakeProject1 PUBLIC $<$<CONFIG:>:/MT> #---------| $<$<CONFIG:Debug>:/MTd> #---|-- Statically link the runtime libraries $<$<CONFIG:Release>:/MT> #--| ) target_link_libraries(CMakeProject1 PRIVATE GTest::gtest GTest::gtest_main)
这时候,googletest 的基本配置完成。
#include <gtest/gtest.h> int main(int argc, char* argv[]) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); }
后记: ==================================================
最终,尝试了多种方法后,找到了最优的解决办法:
将gtest 的 Include 和 src 文件,包含到已有的项目里,设置几个基本参数,然后和项目一起编译。
干净,整洁。而且不用在其他平台上费心思。
因为:gtest 的 CMakeLists.txt 写的问题多多,编译还需要注意静态编译和动态编译,在用第三方库时,会发生一些意想不到的情况。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?