2016-07-20 107 views
0

gcovを適切に使用することができますが、私のディレクトリの中にはヘッダファイルの一部を出力できないものがあります。たとえば、myfile.cppはカバレッジを表示しますが、myfile.h(またはmyfile.hpp)はカバレッジを表示しません。どんな助けでも大歓迎です。lcov/gcovがヘッダファイルのカバレッジを出力していない

+1

ヘッダーに関数定義が含まれていますか?それとも宣言だけ? – Gluttton

+0

複数の関数定義があります。私は問題の一部を考え出したと思う。一部の.gcnoファイルが作成されませんでした。私は予期せぬファイルの終わりに達したことを私に知らせるエラーを得るでしょう。私は通過して.gcnoファイル(と.gcdaファイル)を取り除き、再コンパイルし、再構築し、lcovを実行した後、予期せぬファイルの終わりを持つ各ファイルに対して繰り返しました。 – bsquared82

+0

私の問題は、予期しないファイルの終わりを持つファイルを再コンパイルする必要があったため、.gcdaファイルにタイムスタンプの不一致があることです。私の質問は、私がこれを行う必要がある場合、再コンパイルし、.gcdaタイムスタンプを同期する方法はありますか? – bsquared82

答えて

0

タイムスタンプの問題は、同じソースを使用して複数の出力を作成しているためです。たとえば、メイクファイルはデバッグオブジェクトを作成し、次に最適化されたオブジェクトを作成します。あるいは、静的ライブラリと動的ライブラリを作成するために同じソースを使用します。またはthing.cをコンパイルして.oを作成して静的アーカイブに追加するだけでなく、thing.c-DMAKE_MAINにコンパイルしてテストプログラムを作成することもできます。

いずれの場合でも、ソースをコンパイルするたびに、GCOV Notesファイル(.gcno)が置換されるため、コード解析を実行すると.gcnoが実行可能ファイルより新しいため、タイムスタンプエラーが発生します。

関連する問題