6

因此,我按照这些说明http://clang.llvm.org/get_started.html检查并构建了 clang 主干。我可以使用 --coverage 构建我的二进制文件并运行它以获取 .gcno 和 .gcda 文件,但是当我运行 lcov 时,我得到“GENINFO: ...达到意外的文件结尾”。

现在我被困住了,来到 SO 寻求帮助:)

我正在使用 Ubuntu 13.04 并编写 c++11,以防万一。

4

2 回答 2

2

我在 Ubuntu 13.04 上使用 lcov 时遇到了同样的问题。这是在多个 Ubuntu 设置上对我有用的解决方案。

  1. 你会发现 Ubuntu 上有两个版本的 gcov。gcov-4.6.4 和 gcov-4.7.3。默认情况下,gcov 链接设置为 gcov-4.7.3。将其更改为 gcov-4.6.4
  2. 此外,使用 lcov 版本 1.10 而不是通过 apt-get install 可用的版本

这应该生成代码覆盖率报告。

编辑:我的是从 Ubuntu 12.04 升级到 13.04。以防万一您没有看到两个版本的 gcov。

于 2013-07-20T16:07:46.697 回答
0

只需总结@Himanshu 已经分享的答案的步骤,以防有人正在寻找确切的步骤:

安装 gcc 4.6

sudo apt-get-install -y gcc-4.6

我找不到开箱即用的 locv 1.10 版本,所以我自己编译了它:

git clone https://github.com/linux-test-project/lcov.git

cd lcov

切换到以发布 lcov 1.10 版本为基础的提交的新分支

git checkout -b 1_10 b5c1bdd

编译lcov

sudo make install

确认安装的lcov是1.10

lcov --version

准备好所有这些东西后,使用以下命令:

lcov --gcov-tool /usr/bin/gcov-4.6 --capture -d gcov_data/ -o gcov_data/coverage.info

这样可以避免修补gcov系统上的默认链接。

然后生成视觉覆盖文件

genhtml -o gcov_data/html gcov_data/coverage.info

包含和文件gcov_data的文件夹在哪里。gcnogcda

于 2019-10-10T16:22:45.907 回答