gcov: невозможно открыть файл графика - PullRequest
16 голосов
/ 25 июля 2011

Я пытаюсь использовать gcov. У меня есть этот простой файл a.c:

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.

Ответы [ 5 ]

12 голосов
/ 13 сентября 2011

По умолчанию на Lion "gcc" не является gcc.Это LLVM.И он не поддерживает генерацию тестовых данных покрытия.

Если вы запустите gcc-4.2 -fprofile-arcs -ftest-coverage a.c -o a, вместо этого будет использоваться настоящий gcc, и он, вероятно, будет работать.

2 голосов
/ 25 декабря 2011

Попробуйте использовать clang вместо gcc. У меня была та же проблема , и использование clang исправило ее для меня.

2 голосов
/ 26 июля 2011

Вы уверены, что запускаете команду из того же каталога, что и исходный файл?Вы должны находиться в том же каталоге, если вы не указали флаг -o.Попробуйте:

gcov -o a.c
1 голос
/ 16 декабря 2015

Часто это происходит, когда используемая версия gcov не соответствует версии GCC, используемой для компиляции приложения.В некоторых системах менеджеры пакетов имеют странную практику в том, как они связывают GCC и gcov.Например, во многих системах gfortran совпадает с gfortran-5, но gcov может быть чем-то старым и хрустящим.

0 голосов
/ 21 июня 2013

Я использовал следующее на Mac 10.8.4:

  • Установлено через xcode инструменты командной строки:

enter image description here

  • написал этот пример код с сайта gcc:

    #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

  • И использование gcov GCC: 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'
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...