【问题标题】:lcov is Failing at geninfo Initializationlcov 在 geninfo 初始化时失败
【发布时间】:2013-10-24 03:28:24
【问题描述】:

我正在尝试在以下源目录中生成lcov(版本:1.9)数据:

src/
   foo.o
   foo.gcno
   test/inc
         foo.h
   test/src
         foo.cc

注意:src/ 目录确实包含我需要的 .gcno 文件,但是当我运行 lcov 命令时,从geninfo 初始化时出错:

$LCOV --initial --directory . --base-directory . --gcov-tool $GCOV -c -output-file $initCovFile
geninfo: ERROR: no .bb files found in .!

我读到--initial 应该检测文件类型 .bb、.bbg 或 .gcno,但上面的错误似乎阻止了进一步执行。接下来我尝试抑制错误,以便我可以使用--ignore-errors 选项获得一些输出,如下所示:

geninfo -i . --ignore-errors no .bb files found in . --ignore-errors cannot read .bb!
geninfo: ERROR: cannot read .bb!

我无法克服上述错误。我不明白为什么 geninfo 不会忽略这些错误并使用上面目录结构中的 .gcno 文件。

如何让 geninfo/lcov 像我期望的那样干净地初始化?

【问题讨论】:

    标签: gcc code-coverage gcov lcov


    【解决方案1】:

    来自 IBM 的 Peter Oberparleiter:

    geninfo: ERROR: no .bb files found in .!
    

    此消息表明 $GCOV 指向 3.4.0 之前 GCC 版本的 gcov 工具,该工具生成 .bb 文件而不是 .gcno 文件。 请使用 'gcov --version' 检查版本并使用与用于编译程序的 GCC 版本兼容的 gcov 工具。

    geninfo -i 。 --ignore-errors 中找不到 .bb 文件。 --忽略错误 无法阅读 .bb! geninfo:错误:无法读取.bb!

    geninfo 需要 'gcov'、'source' 或 'graph' 之一作为 --ignore-errors 之后的参数。另见“人 geninfo”。但在这种情况下,--ignore-errors 将无法帮助获取覆盖率数据。

    来自我自己:

    事实证明,这是我的 linux 环境的产物。我们的环境中有多个版本的 gcov 工具,我的 $PATH 环境变量指向一个旧版本。

    因此,如果您正在运行这些工具的更新版本 (gcov/lcov),则不应像我一样遇到此问题。

    【讨论】:

      猜你喜欢
      • 2014-02-19
      • 1970-01-01
      • 2013-04-20
      • 2016-03-25
      • 2012-11-17
      • 2017-12-10
      • 2018-09-17
      • 1970-01-01
      • 2018-10-13
      相关资源
      最近更新 更多