因此,我按照这些说明http://clang.llvm.org/get_started.html检查并构建了 clang 主干。我可以使用 --coverage 构建我的二进制文件并运行它以获取 .gcno 和 .gcda 文件,但是当我运行 lcov 时,我得到“GENINFO: ...达到意外的文件结尾”。
现在我被困住了,来到 SO 寻求帮助:)
我正在使用 Ubuntu 13.04 并编写 c++11,以防万一。
因此,我按照这些说明http://clang.llvm.org/get_started.html检查并构建了 clang 主干。我可以使用 --coverage 构建我的二进制文件并运行它以获取 .gcno 和 .gcda 文件,但是当我运行 lcov 时,我得到“GENINFO: ...达到意外的文件结尾”。
现在我被困住了,来到 SO 寻求帮助:)
我正在使用 Ubuntu 13.04 并编写 c++11,以防万一。
我在 Ubuntu 13.04 上使用 lcov 时遇到了同样的问题。这是在多个 Ubuntu 设置上对我有用的解决方案。
这应该生成代码覆盖率报告。
编辑:我的是从 Ubuntu 12.04 升级到 13.04。以防万一您没有看到两个版本的 gcov。
只需总结@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
的文件夹在哪里。gcno
gcda