質問

私は最近、GCOVを使用してコードカバレッジ情報を収集しています。 GCOVは実行可能なアプリケーションでうまく機能します:)、しかし、.soファイルをロードしようとすると、このエラーが得られました:未知のシンボル__gcov_merge_add。

それから私はGoogleで検索し、誰かがリンクフラグ(LDFLAGS)に-LGCOVを追加すると言った、私はこのオプションを追加しましたが、それは機能しませんでした。また、リンクフラグのカバーオプションを試してみて、このエラーを取り除くことができません。

誰かがこの問題について手伝うことができますか?

ありがとうございました。

役に立ちましたか?

解決

私もその問題に出くわしましたが、それ以来それを解決しました。 cppflagsとldflagsの両方で - カバーオプションを使用します。それはあなたのためにコンパイルの問題の世話をするべきだと思います。

共有オブジェクトはまだ.gcdaファイルを作成していないようであり、その問題を解決する方法がわかりません。あなたが言ったように、それは実行可能ファイルで正常に動作しますが、共有オブジェクトにはいくつかの問題があるようです。

編集:どうやら、GCOVは現在共有オブジェクトをサポートしています。昨日、かなりの量の調査を行い、矛盾する答えを見つけたので、GCCヘルプリストを郵送しました。こちらのスレッドを参照してください: http://gcc.gnu.org/ml/gcc-help/2010-09/msg00130.html. 。私はまだ答えに基づいて自分の問題を解決しようとしていませんが、私がそうするときに投稿します。

編集2:共有オブジェクトは、GCOVで動作します(またはGCCを使用するオプションではなく)。ここに詳細が記載された別の投稿があります: GCOV:共有ライブラリから.GCDA出力を生成しますか?. 。また、上記の同じスレッドを参照しています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top