не могу открыть файл графа GCOV с GCC

Я использую gcov в качестве инструмента покрытия кода для моего проекта c ++ с gcc (в настоящее время 4.6.3, но скоро будет 4.8) в Ubuntu 12.04, и я получаю сообщение об ошибке, не могу открыть файл графика. Что означает эта ошибка? И как мне избавиться от этого, чтобы я мог видеть покрытие моего кода?

Я видел другие решения этой проблемы, наиболее популярным из которых является использование Clang (gcov: невозможно открыть файл графика) вместо gcc, но я не могу переключать компиляторы, я должен использовать gcc, чтобы это не работало для меня. Кроме того, в документации по gcov сказано, что он должен работать с gcc.

Другим решением было исправить файл конфигурации (http://ubuntuforums.org/showthread.php?t=1547252) но я не уверен, о каком конфигурационном файле говорит этот пользователь, поэтому, если это тоже моя проблема, я не знаю, как это исправить

мои файлы .gcda и .gcno правильно генерируются в моем каталоге obj

кроме того, что я зашел в мою верхнюю директорию, где я скомпилировал свой код и выполнил команду gcov * .c
Каталог gcov -o / to / obj * .c
а также
gcov -o каталог / to / obj * .gcda
а также
gcov -o каталог / to / obj * .gcno

но ни одно из этих решений не работает; я все еще получаю не могу открыть ошибку файла графа.

Любая помощь или совет будут оценены!

1

Решение

Вышеуказанная проблема связана с отсутствием .gcda and .gcno file in the directory where your source code present ,

Так что мое предложение 1-й экземпляр one .gcda and .gcno file of particular .c file in your source code where your .c resides then execute gcov filename.c,

Если вы получаете покрытие, то попробуйте мягко связать все ваши .gcda и .gcno с исходным кодом, если вы не хотите копировать из каталога obj, тогда, как вы заявили, проблема будет решена

1

Другие решения

Позвольте мне прояснить несколько вещей, которые вы делали неправильно.

Во-первых: вы всегда пытались указать * .gcda, * .gcno, * .c и т.д. после пути к каталогу obj, что совершенно неверно.
Что вам нужно сделать, это указать его как «-o путь / к / obj /» (путь к каталогу)

Вы даже можете указать путь к gcda-файлу этого конкретного исходного файла c / c ++ и указать путь к каталогу obj в флаге «-o», чтобы получить отчет для этого файла.

И если вы используете gcovr вместо gcov для своих отчетов, то вы можете получить все виды отчетов, указав только корневой каталог (каталог выше src & obj) с флагом «-r -root = ROOT».
Обратитесь к этому пользователю руководство для деталей на gcovr.

1

По вопросам рекламы [email protected]