You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GoogleTest项目中通过CMake让Cppcheck仅检查指定目录

配置CMake启动Cppcheck仅检查src和test目录

项目结构

-Project  
--src  
--test

需求说明

项目使用GoogleTest库,需通过CMake启动Cppcheck,仅对src和test目录执行静态代码检查,同时避开构建目录中GoogleTest生成的内容。

修改后的CMake配置代码

# 查找Cppcheck可执行文件
find_program(CMAKE_CXX_CPPCHECK NAMES cppcheck HINTS $ENV{PROGRAMFILES}/cppcheck)

if (CMAKE_CXX_CPPCHECK)
    message(STATUS "CppCheck found.")
    # 配置Cppcheck核心参数:指定检查目录、排除构建目录、启用检查规则
    set(CMAKE_CXX_CPPCHECK
        ${CMAKE_CXX_CPPCHECK}
        --enable=warning,style,performance
        --inconclusive
        --force
        --exclude=${CMAKE_BINARY_DIR}  # 排除构建目录,避开GoogleTest生成的内容
        ${PROJECT_SOURCE_DIR}/src
        ${PROJECT_SOURCE_DIR}/test
    )
else ()
    message(STATUS "CppCheck not found.")
endif ()

关键配置说明

  • 指定检查范围:直接传入${PROJECT_SOURCE_DIR}/src和${PROJECT_SOURCE_DIR}/test路径,确保仅检查目标目录
  • 排除无关目录:通过--exclude=${CMAKE_BINARY_DIR}跳过构建目录,避免检查GoogleTest生成的临时文件
  • 启用检查规则:--enable=warning,style,performance开启常用的警告、代码风格、性能类检查,可按需调整规则组合
  • 辅助参数:--inconclusive允许输出不确定的检查结果,--force强制检查所有源文件(包括未关联头文件的文件)

补充说明

上述配置会集成到CMake生成的构建系统中,后续执行构建命令时,Cppcheck会自动对所有C++目标执行检查,检查结果会同步输出到构建日志中。

内容的提问来源于stack exchange,提问作者Safouen Aouadi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 21:35:23