Я пытаюсь использовать gcovr в моем проекте linux, и мне не повезло получить файлы .gcda для динамической библиотеки после выполнения двоичного файла.
У меня есть проект с именем projectA , который создает библиотеку с именем libprojectA.so и ссылки для проекта модульного теста libprojectA.so . Основная цель заключается в том, чтобы я хотел увидеть покрытие кода для функций projectA, вызываемых из двоичного кода модульного теста UnitTestExecutable .
У меня есть такая структура каталогов: Структура проекта
Это шаги, которые я выполнил для вызова gcovr .
Сборка проекта A с его Makefile
- MakefileИмеет "-fprofile-arcs -ftest-покрытие -fPIC"
- создает .o и .gcno внутри каталога .build
- создает динамическую библиотеку libprojectA.so
Сборка юнит-теста
- Ссылки Makefile libprojectA.so
- Makefile имеет "-fprofile-arcs -ftest-охват -fPIC"
- создает. o и .gcno
- создает двоичный файл UnitTestExecutable
Execute UnitTestExecutable
- создает файлы .gcda внутри /unittest/*.gcda
- он не создает * .gcda внутри / porjectA / folder <== в этом проблема </li>
Вызовите gcovr gcovr -v -r / projectA / --html --html-details -o test-html-details.html --object-directory = / projectA / .build /
Вот этожалуется, что не может найти * .gcda внутри /projectA/.build/
Может кто-нибудь помочь, пожалуйста?
Спасибо,