c++ - 如何将 gcov 与 QMake 一起用于代码覆盖

标签 c++ qt qt4 qmake gcov

我想在使用 QTestLib 编写的单元测试中使用 gcov。通过将其添加到我的 .pro 文件中,我已经成功地在我的目标文件中生成了一些 .gcno 文件:

QMAKE_CXXFLAGS += -fprofile-arcs -ftest-coverage -O0

但是,当我运行时:

gcov main.cpp.gcno

我得到了一堆生成了无用内容的 .gcov 文件(与我在网络教程中看到的完全不同):

-:    0:Source:main.cpp
-:    0:Graph:main.gcno
-:    0:Data:-
-:    0:Runs:0
-:    0:Programs:0
-:    1:/*EOF*/
-:    2:/*EOF*/
-:    3:/*EOF*/
-:    4:/*EOF*/
-:    5:/*EOF*/
-:    6:/*EOF*/
-:    7:/*EOF*/
-:    8:/*EOF*/
-:    9:/*EOF*/
-:   10:/*EOF*/
-:   11:/*EOF*/
-:   12:/*EOF*/
-:   13:/*EOF*/
-:   14:/*EOF*/
#####:   15:/*EOF*/
-:   16:/*EOF*/
#####:   17:/*EOF*/
-:   18:/*EOF*/
-:   19:/*EOF*/
#####:   20:/*EOF*/
-:   21:/*EOF*/
-:   22:/*EOF*/
-:   23:/*EOF*/
-:   24:/*EOF*/
#####:   25:/*EOF*/
#####:   26:/*EOF*/
-:   27:/*EOF*/
-:   28:/*EOF*/
-:   29:/*EOF*/
#####:   30:/*EOF*/

我的源文件在 ./MyProject/test/src 目录下,我所有的目标文件都在 src 下的 .obj 目录中(即:.MyProject/test/src/。目标)。所有二进制文件都在 ./MyProject/build 目录中创建。

我错过了什么?

谢谢!

最佳答案

你有没有运行你的QT程序?在那之前没有覆盖率数据。 另外,看看 lcov,你可以用它来获得一个很好的基于 html 的一切报告

关于c++ - 如何将 gcov 与 QMake 一起用于代码覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4204186/

相关文章:

qt - QML ItemDelegate 突出显示的属性不起作用

c++ - 如何使用 Qt 网络类防止关机竞争条件

qt - 如何从 Web 应用程序构建桌面应用程序,同时能够捕获与服务器的通信?

c++ - 如何在qt中显示图像的预览?

c++ - 静态常量 : why does it need to be templated?

c++ - 局部数组变量的最大大小

qt4 - QMake不更新子目录生成文件

macos - 如何使用 qmake 和 macdeployqt 缩小应用程序

c++ - "Direct"与 "virtual"调用虚函数

c++ - C++中结构对象的深拷贝指针