cmake lcov
时间: 2023-07-08 11:22:55 浏览: 57
CMake是一个开源的跨平台自动化构建系统,可以用于管理和构建项目的源代码、编译器、库、测试和安装过程。
Lcov是一个开源的代码覆盖率工具,可以生成HTML格式的报告,显示程序的哪些部分被测试覆盖到了,哪些部分没有被覆盖到。
在使用CMake构建项目时,可以通过添加选项来启用Lcov代码覆盖率检测功能,具体步骤如下:
1. 安装Lcov和Genhtml工具,可以通过Linux系统的包管理器或者源码安装方式进行安装。
2. 在CMakeLists.txt文件中添加以下选项:
```
SET(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel Coverage.")
SET(CMAKE_CXX_FLAGS_COVERAGE "${CMAKE_CXX_FLAGS_DEBUG} --coverage")
SET(CMAKE_EXE_LINKER_FLAGS_COVERAGE "${CMAKE_EXE_LINKER_FLAGS_DEBUG} --coverage")
```
其中,CMAKE_BUILD_TYPE指定构建类型为Coverage,CMAKE_CXX_FLAGS_COVERAGE和CMAKE_EXE_LINKER_FLAGS_COVERAGE分别指定编译器和链接器的选项,启用代码覆盖率检测功能。
3. 在项目构建完成后,在项目目录下执行以下命令生成代码覆盖率报告:
```
lcov --directory . --capture --output-file coverage.info
```
其中,--directory指定检测的目录,--output-file指定报告输出文件。
4. 使用Genhtml工具生成HTML格式的报告:
```
genhtml coverage.info --output-directory coverage_report
```
其中,--output-directory指定报告输出目录。
最后,在浏览器中打开生成的HTML报告,即可查看代码覆盖率情况。