23

gcov を起動して実行しようとすると、次のエラーが発生します。

$ gcov src/main.c -o build
build/main.gcno:version '404*', prefer '407*'

gcov: out of memory allocating 14819216480 bytes after a total of 135168 bytes

私はclang/profile_rtを使用してgcovが必要とするファイルを生成していますが、それが何か関係があると思います。ただし、他のコンピューターでは動作しているため、何らかの方法で修正できると思います。

4

3 に答える 3

25

私のマシンでも同じ問題が発生しました。

gcov のバージョンと使用するコンパイラが一致していることを確認してください。

g++-4.7 でコンパイルしたときにこの正確な問題が発生し、gcov 4.6 がありました。

私のマシンsudo apt-get install ggcovでは、最新バージョンを取得しました。次にsudo ln -sf /usr/bin/gcov-4.7 /usr/bin/gcov、gcov を正しい場所に向ける必要がありました。

于 2013-02-03T19:20:47.450 に答える
11

私の問題は、 と を更新gccして新しいコンパイラを使用できるようにしたことですが、バージョンg++を更新するのを忘れていたため、 " " または " " を実行すると、 の以前のコンパイラ バージョンが取得されました。gcovgcovlcovgcov

したがって、基本的に実行g++ --versiongcov --versionて同じバージョン番号を生成する必要があります。そうしないと、非常にうまくいかないでしょう。

コンパイラのバージョンを更新した方法は次のとおりです。最後の行は、すべてを機能させるために欠けていたものです。

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 90
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 90
sudo update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-4.9 90
于 2015-01-12T13:46:30.127 に答える
10

同じ問題が発生したばかりで、正しいバージョンがインストールされていました。私の場合の解決策:*.gcdaコンパイルしたサブディレクトリからすべてのファイルを削除します。私make cleanはそれらをカバーしませんでした。

于 2014-05-14T12:07:19.497 に答える