在CMake中配置GCOV对C++项目代码进行分析
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在CMake中配置GCOV对C++项目代码进行分析,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1674字,纯文字阅读大概需要3分钟。
内容图文
![在CMake中配置GCOV对C++项目代码进行分析](/upload/InfoBanner/zyjiaocheng/616/9928ad8729ca4d24a123eaa2195bd19a.jpg)
问题描述
如何在CMakeLists.txt中配置gcov来生成代码分析报告?
解决办法
第一步:下载gcov的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
其中:
make
是生成原始项目可执行文件make ${PROJECT_NAME}_coverage
是生成可执行文件执行时的代码分析文档,也就是说运行这个命令会直接运行可执行文件然后生成代码分析的html报告在项目根目录中。
参考
https://stackoverflow.com/questions/13116488/detailed-guide-on-using-gcov-with-cmake-cdash#
https://jhbell.com/using-cmake-and-gcov
内容总结
以上是互联网集市为您收集整理的在CMake中配置GCOV对C++项目代码进行分析全部内容,希望文章能够帮你解决在CMake中配置GCOV对C++项目代码进行分析所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。