GCov и GCC, *.da файлы не созданы

Я использую GCC версии 3.3.6. Когда я использую свои объектные файлы с -fprofile-arcs а также -ftest-coverage, соответствующий *.bb а также *.bbg файлы созданы.

Объектные файлы затем объединяются в статическую библиотеку libfoo.a с:
ar rcs libfoo.a foo1.o foo2.o,

Наконец, ряд статических библиотек связаны между собой для создания моего исполняемого файла:
gcc -fprofile-arcs -o foo.o <static libraries linked all>

Теперь, когда я запускаю образ, файлы *.da не создаются. Есть ли шаг, который мне не хватает? У кого-нибудь есть другие предложения?

Благодарю.

1 ответ

Исполняемый файл должен быть связан с библиотекой gcov:

gcc -fprofile-arcs -o foo.o <static libraries linked all> -lgcov

РЕДАКТИРОВАТЬ: Начиная с gcc 4.1.2, --coverage опция может использоваться как синоним -fprofile-arcs -ftest-coverage (при компиляции) и -lgcov (при ссылке).

Также стоит отметить, что файлы создаются в том же каталоге, что и компиляция. Этот каталог должен быть доступен из среды выполнения. В последних версиях gcc (4-1) введены переменные среды для настройки целевого каталога: GCOV_PREFIX и GCOV_PREFIX_STRIP, см. Раздел перекрестного профилирования gcc doc.

Другие вопросы по тегам