Итак, я пытаюсь оптимизировать файл с именем linpack.c
. Я должен использовать gcov
, чтобы найти 10 самых исполняемых строк. Мне дали следующие параметры компилятора:
-fprofile-arcs -ftest-coverage -O2
Итак, я запустил этот
$ gcc -fprofile-arcs -ftest-coverage -O2 linpack.c
, результат был linpack, linpack.gcno
.
Теперь, когда я пытаюсь запустить gcov linpack.c
для генерации linpack.c.gcov
, я получаю сообщение об ошибке:
linpack.gcda, cannot open data file.
Может кто-нибудь сказать мне, что я делаю неправильно? Это должно быть просто, но я боролся уже больше часа.
linpack.gcda
файл должен быть создан, когда Вы выполняете программу, которую Вы скомпилировали с флагами профиля. Так как Вы не предоставляли имя выходного файла (использующий -o
опция) на gcc командной строке, необходимо будет выполнить его как a.out
. Например:
$ gcc -fprofile-arcs -ftest-coverage -O2 hello.c
$ ls hello.*
hello.c hello.gcno
$
$ ./a.out
Hello world!
$ ls hello.*
hello.c hello.gcda hello.gcno
$