8

我正在尝试获取基于 CMake 的项目(由多个目标组成)的代码覆盖率。

首先,我生成 gcno 文件:

lcov -b . -d . -o coverage.output --capture --initial

*.gcno生成于

build_dir/[target_dir]/CMakeFiles/[target_dir].dir

然后我运行生成*.gcna文件的测试

build_dir/tests/CMakeFiles/[target_dir].dir

当我现在再次运行 lcov 时:

lcov -b . -d . -o coverage.output --capture

我收到以下错误:

Scanning . for .gcda files ...
Found 23 data files in .
Processing Base.dir/DateTools.cpp.gcda
geninfo: ERROR: build_gcov/tests/CMakeFiles/Base.dir/DateTools.cpp.gcno: could not open file

当我手动将*.gcno文件移动到生成 *.gcda 的目录,它似乎可以工作。

谢谢你的帮助!!!

4

1 回答 1

6

我已经弄清楚如何将 lcov 与 CMake 一起使用,并将所有内容捆绑在一个cmake 模块中。

于 2012-01-31T11:35:43.247 回答