我试图收集在Ubuntu上有C++和c代码的项目的代码覆盖率。gcov为c生成空覆盖
我使用'-fprofile-arcs'和'-ftest-coverage'值作为CXXFLAGS和CFLAGS; '-lgcov'作为LINKFLAGS。
常见的C项目结构是:
c_code\
src
unit_tests
src包含静态库的来源。
unit_tests dir包含用googletest框架e编写的测试。 G。种类测试
TEST_F(test_case_name, test_name) {
some_gtest_assertions;
}
构建googletest二进制文件之后,应该包含要在其中进行测试的静态库。
构建并运行项目二进制文件会导致生成* .gcno和* .gcda文件。但是我的C覆盖结果是空的(C++生成的很好)。
LCOV命令有folloiwng格式:
lcov --capture --directory my_c_gcda_location --output-file c_coverage.info
LCOV的日志显示了C-相关gcda文件如下:
的gcov没有为“my_c_gcda_location创建任何文件/ * gcda “`
也有一种错误:
* .gcda:与笔记戳不匹配文件
我应该指定一些额外的参数或进行一些额外的动作来获得对C的覆盖效果?或者这些问题的原因是什么?
您必须提供'最低可验证代码',显示'my_c_gcda_location'是如何处理/创建文件的,或者除了猜测外没有人可以做任何事情。没有明确问题陈述的问题对其他读者无益。请参阅:[**如何创建一个最小,完整和可验证的示例**](http://stackoverflow.com/help/mcve)。“ – 2014-12-03 16:11:59