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 が、.gcno ファイルではなく .bb ファイルを生成する3.4.0 より前の GCCバージョンの gcov ツールを指していることを示しています。「gcov --version」を使用してバージョンを確認し、プログラムのコンパイルに使用した GCC バージョンと互換性のある gcov ツールを使用してください。

geninfo -i . --ignore-errors に .bb ファイルが見つかりません。--ignore-errors は .bb を読み取れません! geninfo: エラー: .bb を読み取れません!

geninfo には、--ignore-errors に続くパラメーターとして「gcov」、「source」、または「graph」のいずれかが必要です。「man geninfo」も参照してください。ただし、この場合、 --ignore-errors はカバレッジ データの取得に役立ちません。

私自身から:

結局のところ、これは私の Linux 環境の産物でした。私たちの環境には複数のバージョンの gcov ツールがあり、私の $PATH 環境変数は古いバージョンを指していました。

したがって、これらのツール (gcov/lcov) のより新しいバージョンを実行している場合は、私のようにこの問題に遭遇することはありません。

于 2013-10-24T19:15:09.480 に答える