编程语言
首页 > 编程语言> > 在CMake中配置GCOV对C++项目代码进行分析

在CMake中配置GCOV对C++项目代码进行分析

作者:互联网

问题描述

如何在CMakeLists.txt中配置gcov来生成代码分析报告?

解决办法

第一步:下载gcov的cmake包

地址:Github上的cmake文件下载地址

并将该cmake包放在项目根目录下新创建的CMakeModules文件夹下面。此时,项目代码的结构如下所示(举例):

- Your_Project_dir
	- main.cc
	- CMakeLists.txt
	- include
		- xxx.h
	- src
		- xxx.cc
	- CMakeModules
		- CodeCoverage.cmake

第二步:配置你的CMakeLists.txt

在添加gcov相关配置之前,你的CMakeLists.txt应该类似这个样子:

cmake_minimum_required(VERSION 2.8)
project(your_project)

# 请确保你的C++编译器为GNUCXX
# Clang不支持gcov

include_directories(include)
aux_source_directory(src SRC_DIR)

add_executable(${PROJECT_NAME} main.cc ${SRC_DIR})

此时,在CMakeLists.txt文件尾部添加:

# 将我们下载好的gcov对应的cmake包引入项目中
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/CMakeModules)

# if判断语句是为了确保编译器是GNUCXX(即g++)以支持gcov功能
if(CMAKE_COMPILER_IS_GNUCXX)

	# 引入CodeCoverage功能
    include(CodeCoverage)
    
    # 我的理解是:
    # NAME后指定加入gcov功能的可执行文件名
    # EXECUTABLE后指定原始可执行文件(也就是要进行分析的那个可执行文件)名字
    # DEPENDENCIES也是原始可执行文件名字
    setup_target_for_coverage_lcov(NAME ${PROJECT_NAME}_coverage EXECUTABLE ${PROJECT_NAME} DEPENDENCIES ${PROJECT_NAME})
    
endif()

构建项目编译

在项目的根目录新建build目录然后在build目录中构建项目:

mkdir build
cd build 
cmake .. -DCMAKE_BUILD_TYPE=Debug
make
make ${PROJECT_NAME}_coverage

其中:

参考

https://stackoverflow.com/questions/13116488/detailed-guide-on-using-gcov-with-cmake-cdash#

https://jhbell.com/using-cmake-and-gcov

标签:可执行文件,CMakeLists,cmake,NAME,C++,PROJECT,GCOV,CMake,gcov
来源: https://blog.csdn.net/yjj546542806/article/details/111568642