如何在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
相关产品推荐
相关产品推荐

