CMake和lcov:找不到gcno文件

时间:2012-01-30 17:40:14

标签: c++ cmake code-coverage gcov lcov

我正在尝试在基于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 的目录时,它似乎可以正常工作。

感谢您的帮助!!!

1 个答案:

答案 0 :(得分:5)

我已经弄明白了如何将lcov与CMake一起使用并将所有内容捆绑在cmake module中。