首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用c ++编译器运行gcov工具

使用c ++编译器运行gcov工具
EN

Stack Overflow用户
提问于 2018-12-20 01:52:52
回答 2查看 0关注 0票数 0

我第一次使用覆盖工具gcov来分析一个大型项目。我有这样的目录结构:

    HW
     -FooHW1.cpp
     -FooHW1.h
     -FooHW2.cpp
     -FooHW2.h
     -...
     -Makefile.am
    Lib1
     -FooLib1.cpp
     -FooLib1.h
     -FooLib2.cpp
     -FooLib2.h
     -...
     -Makefile.am

    Lib2
     ...
     -Makefile.am
    Lib3
     ...
     -Makefile.am
    Main
     -main.cpp
     -main.h
     -Makefile.am

每个目录都有自己的Makefile生成,使用automake生成依赖,无论编译器使用什么是c ++。

由于我的目标是对语句覆盖率的分析,我尝试使用gcov将以下行添加到每个Makefile.am以生成我的.gcno和.gcda文件以便使用gcov:

    AM_CXXFLAGS = -fprofile-arcs -ftest-coverage
    AM_LDFLAGS = -fprofile-arcs

不幸的是,即使它编译它也不会创建(或链接)几个* .o并且在调用gcov时它通常会给我错误:

    undefined __gcov_init

我也尝试过指令:

    AM_CXXFLAGS = --coverage
    AM_LDFLAGS = --coverage

但它对我来说不起作用。

我想指出这是第一次使用gcov工具和处理大型c ++项目。谢谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2018-12-20 10:05:28

lcov使您可以以html格式显示覆盖率的结果(列出的文件甚至是源文件中的行的百分比很好)。

我希望你确实意识到这是一个动态的覆盖,所以你必须实际运行程序以获得任何覆盖(构建应该只创建.gcno文件)。

票数 0
EN

Stack Overflow用户

发布于 2018-12-20 11:13:36

链接库gocv

-lgcov

应该有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100008942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档