17

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 を使用しています。

4

5 に答える 5

12

Lion のデフォルトでは、「gcc」は gcc ではありません。LLVMです。また、テスト カバレッジ データの生成もサポートしていません。

代わりに実行gcc-4.2 -fprofile-arcs -ftest-coverage a.c -o aすると、実際の gcc が使用され、おそらく動作します。

于 2011-09-13T17:17:08.643 に答える
2

clangの代わりに使ってみてくださいgcc。私は同じ問題を抱えていましたが、使用するとclang修正されました。

于 2011-12-25T15:13:06.760 に答える
2

ソースファイルと同じディレクトリからコマンドを実行していますか? -o フラグを指定しない限り、同じディレクトリにいる必要があります。試す:

gcov -o a.c
于 2011-07-26T01:34:56.050 に答える
1

gcovこれは、実行している のバージョンが、アプリケーションのコンパイルに使用された GCC のバージョンと一致しない場合によく発生します。一部のシステムでは、パッケージ マネージャーは、GCC とgcov. たとえば、多くのシステムgfortranでは と同じですが、古くて無愛想なものである可能性がありますgfortran-5gcov

于 2015-12-16T00:03:20.877 に答える
0

私は次のものを使用しましたMac 10.8.4

  • コマンド ライン ツールを xcode 経由でインストールします。

ここに画像の説明を入力

  • 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"); 
    }
    
  • 実際の G​​CC を使用してコンパイルする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'
    
于 2013-06-21T14:28:56.423 に答える