资讯详情

google test+cmake配置 tom3311

📅 2026/9/14 22:18:32 | 华诺云谱 👁 阅读
google test+cmake配置 tom3311
为工程添加单元测试功能的实施步骤总结一、准备第三方库(GTest/GMock)将离线预编译的 GoogleTest/GoogleMock 放到install_all/thirdparty/,目录结构为:install_all/thirdparty/ ├── googletest/ │ ├── include/ # gtest 头文件 │ └── libs/ │ └── windows/ │ ├── debug/ # gtest.lib、gtest_main.lib │ └── release/ # 同名 .lib └── googlemock/ # 结构同上关键约定:debug/release 目录下的库文件名相同(如都是gtest.lib),靠目录区分配置,不是靠文件名后缀。二、创建独立测试工程骨架新建gtest/工程,顶层 [CMakeLists.txt](file:///d:/test/gtest/CMakeLists.txt) 关键配置:基础设置:C++17、/utf-8、Debug;Release双配置、安装前缀强制为../install_all/install(与其他工程一致);list(APPEND CMAKE_PREFIX_PATH "${CMAKE_INSTALL_PREFIX}")让find_package能找到被测库的配置文件;find_package(Qt... Core)— 因为被测库头文件间接依赖 Qt;find_package(test_lib REQUIRED)— 以安装包形式引入被测库(要求被测库已先构建安装)。三、接入 GTest(IMPORTED 目标方式)设置THIRDPARTY_DIR,按平台(Windows/Linux/Mac)选择库目录、前缀、后缀;用函数_gtest_add_imported()封装四个静态库gtest、gtest_main、gmock、gmock_main的 IMPORTED 目标定义([第 49-60 行](file:///d:/0code/test/gtest/CMakeLists.txt#L49-L60)),核心要点:add_library(... STATIC IMPORTED GLOBAL);INTERFACE_INCLUDE_DIRECTORIES自动传播头文件路径;IMPORTED_LOCATION_DEBUG/RELEASE指向对应目录;MAP_IMPORTED_CONFIG_*兜底;用INTERFACE_LINK_LIBRARIES声明依赖:gtest_main→gtest、gmock→gtest、gmock_main→gmock;gtest,Unix 下 gtest 加pthread。功能最上层CMakeLists: gtest\CMakeLists.txtcmake_minimum_required(VERSION3.16)# 独立的单元测试工程:为 d:/0code/test 下各工程生成单元测试程序project(unit_tests VERSION0.1LANGUAGES CXX)set(CMAKE_CXX_STANDARD17)set(CMAKE_CXX_STANDARD_REQUIRED ON)set(CMAKE_CONFIGURATION_TYPES"Debug;Release"CACHE STRING""FORCE)if(MSVC)add_compile_options("/utf-8")# MSVC 源文件按 UTF-8 解释,消除中文注释导致的 C4819 编码警告endif()# 与 test_lib / cmake1 工程一致的公共安装前缀(d:/0code/test/install_all/install)set(CMAKE_INSTALL_PREFIX"${CMAKE_CURRENT_SOURCE_DIR}/../install_all/install"CACHEPATH"Install prefix"FORCE)# 让 find_package 能在安装树中找到各工程导出的包配置文件(如 test_libConfig.cmake)list(APPEND CMAKE_PREFIX_PATH"${CMAKE_INSTALL_PREFIX}"
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。