1

我正在尝试在以下源目录中生成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 像我期望的那样干净地初始化?

4

1 回答 1

0

来自 IBM 的 Peter Oberparleiter:

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

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

基因信息 -i 。--ignore-errors 中找不到 .bb 文件。--ignore-errors 无法读取 .bb!geninfo:错误:无法读取.bb!

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

来自我自己:

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

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

于 2013-10-24T19:15:09.480 回答