gcov を使用しようとしています。私はこの単純なファイルacを持っています:
int main() {
return 0;
}
私もです
gcc -fprofile-arcs -ftest-coverage a.c -o a
./a
gcov a.c
そして私は得る
a.gcno:cannot open graph file
私は何か間違ったことをしていますか?私は Mac OS X Lion を使用しています。
Lion のデフォルトでは、「gcc」は gcc ではありません。LLVMです。また、テスト カバレッジ データの生成もサポートしていません。
代わりに実行gcc-4.2 -fprofile-arcs -ftest-coverage a.c -o a
すると、実際の gcc が使用され、おそらく動作します。
clang
の代わりに使ってみてくださいgcc
。私は同じ問題を抱えていましたが、使用するとclang
修正されました。
ソースファイルと同じディレクトリからコマンドを実行していますか? -o フラグを指定しない限り、同じディレクトリにいる必要があります。試す:
gcov -o a.c
gcov
これは、実行している のバージョンが、アプリケーションのコンパイルに使用された GCC のバージョンと一致しない場合によく発生します。一部のシステムでは、パッケージ マネージャーは、GCC とgcov
. たとえば、多くのシステムgfortran
では と同じですが、古くて無愛想なものである可能性がありますgfortran-5
。gcov
私は次のものを使用しましたMac 10.8.4
:
gcc Web サイトからこのサンプルコードを書きました。
#include <stdio.h>
main()
{
int i, total; total = 0;
for (i = 0; i < 10; i++)
total += i;
if (total != 45)
printf ("Failure\n");
else
printf ("Success\n");
}
実際の GCC を使用してコンパイルするgcc-mp-4.7 -fprofile-arcs -ftest-coverage tmp.c
GCC の gcov: を使用すると、次のgcov-mp-4.7 -b tmp.c
出力が得られます。
File 'tmp.c'
Lines executed:87.50% of 8
Branches executed:100.00% of 4
Taken at least once:75.00% of 4
Calls executed:50.00% of 2
Creating 'tmp.c.gcov'