4

GCC バージョン 3.3.6 を使用しています。オブジェクト ファイルを-fprofile-arcsおよびで計測すると-ftest-coverage、適切な*.bbおよび*.bbgファイルが作成されます。

オブジェクト ファイルは、次のようにスタティック ライブラリにリンクされlibfoo.aます
ar rcs libfoo.a foo1.o foo2.o

最後に、一連の静的ライブラリをリンクして、実行可能ファイルを作成します。
gcc -fprofile-arcs -o foo.o <static libraries linked all>

イメージを実行すると、*.da ファイルが作成されません。欠けているステップはありますか?他に提案はありますか?

ありがとう。

4

1 に答える 1

3

実行可能ファイルは gcov ライブラリにリンクする必要があります。

gcc -fprofile-arcs -o foo.o <static libraries linked all> -lgcov

EDIT : gcc 4.1.2 以降、このオプションは(コンパイル時) および(リンク時 )--coverageの同義語として使用できます。-fprofile-arcs -ftest-coverage-lgcov

また、ファイルはコンパイルと同じディレクトリに作成されることに注意してください。このディレクトリは、実行環境からアクセスできる必要があります。gcc の最近のバージョン (4-1) では、ターゲット ディレクトリを調整するための環境変数が導入されました: GCOV_PREFIX およびGCOV_PREFIX_STRIP

于 2010-12-07T22:43:00.277 に答える