.gcda
オプションで構築された共有ライブラリにリンクされた実行可能ファイルを実行することにより、gcovデータファイル(--coverage
ファイル)を生成することは可能ですか?
基本的に、1つの共有ライブラリにコンパイルされた複数のc ++ファイルで構成されるメインライブラリと、メインライブラリにリンクしてテストするテストプログラムを含む「test」というサブディレクトリがあります。すべてが正常にコンパイルされ、ライブラリソースファイルとテストソースファイルの両方に対して.gcno
ファイルが生成されます。 .gcda
ファイルはテストソースファイル用にのみ作成されますが、共有ライブラリにコンパイルされる実際のソースファイル用に本当に必要です。
何か案は?
追加情報:
私はついにgccの人たちから助けを得て、この問題を解決しました。こちらのスレッドを参照してください: http://gcc.gnu.org/ml/gcc-help/2010-09/msg00130.html 。
共有ライブラリ(.so)ファイルがあったので、.gcdaファイルが.libsディレクトリに配置されていたことがわかりました。 gcovに出力を生成させるには、.gcdaファイルをソースファイルがあった場所まで1レベル上に移動する必要がありました。
また、他の誰かが同じ問題のいくつかに遭遇した同様のスレッドがあります: gcovは共有オブジェクトを処理できますか? 。