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.