Gcov有效,但Gcovr不工作

时间:2018-03-27 07:32:31

标签: c gcov gcovr

当我运行gcov然后输出显示87%覆盖...然后我想使用gcovr,但它确实无法工作。我试图从许多目录运行,有很多选项。在某些情况下,我会覆盖一些文件而不是我想要查看的文件。

我的项目包含3个文件:

  • src\main.c
  • src\makefile
  • tst\test1.c
  • tst\test2.c
  • tst\makefile
  • tst\obj\all目标文件,gcno,gcda存储在这里......
  • build\build.bat制作项目(窗口)

我应该更改目录结构吗?如何查看我应该使用哪个版本的gcov? 我想查看main.c的覆盖范围,但只获取test1.c和test2.c的覆盖范围,而这些覆盖范围与覆盖范围无关!

在测试文件旁边,我在C:\ compiler中包含目录,这些目录不是覆盖范围所必需的。

我试过Python27:

python c:\python27\scripts\gcovr -g --object-directory=. -r ..\..\..\ --html --html-details -o program.html -v

我试过Python36:

c:\python36\scripts\gcovr --use-gcov-files -v --object-dir=.

但永远不会覆盖我的待测设备。只有没有gcovr的gcov才有效,所以文件必须正确。

2 个答案:

答案 0 :(得分:0)

尝试添加-f''选项。 gcovr中的bug在我们构建树时出来了

答案 1 :(得分:0)

我在Windows中运行GCOVR时遇到了一些问题,特别是关于\而不是/并使用冒号字符:在C:\ file.c这个名称中

当你使用\它需要使用其中的2个\并且在gcovr中的某个位置它会更改为\\或\\\ ...这样做不顺利,在某些时候它会尝试查找源的根目录文件减去2个路径。但它找不到这个,例如 \ a \ b \ c \ d在\ a \ b \ c \ d中找不到它。所以,请查看:[github.com/barthoukes/gcovr] [1]

该解决方案仍然非常脏,但它适用于我在Windows中的项目。我认为gcovr人也在讨论这个问题。

您只需要文件:gcovr