gcovr отсутствует .gcda файлы после выполнения двоичного файла, который связан с динамически связанными библиотеками объектов шардов (.so) - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь использовать gcovr в моем проекте linux, и мне не повезло получить файлы .gcda для динамической библиотеки после выполнения двоичного файла.

У меня есть проект с именем projectA , который создает библиотеку с именем libprojectA.so и ссылки для проекта модульного теста libprojectA.so . Основная цель заключается в том, чтобы я хотел увидеть покрытие кода для функций projectA, вызываемых из двоичного кода модульного теста UnitTestExecutable .

У меня есть такая структура каталогов: Структура проекта

Это шаги, которые я выполнил для вызова gcovr .

  1. Сборка проекта A с его Makefile

    • MakefileИмеет "-fprofile-arcs -ftest-покрытие -fPIC"
    • создает .o и .gcno внутри каталога .build
    • создает динамическую библиотеку libprojectA.so
  2. Сборка юнит-теста

    • Ссылки Makefile libprojectA.so
    • Makefile имеет "-fprofile-arcs -ftest-охват -fPIC"
    • создает. o и .gcno
    • создает двоичный файл UnitTestExecutable
  3. Execute UnitTestExecutable

    • создает файлы .gcda внутри /unittest/*.gcda
    • он не создает * .gcda внутри / porjectA / folder <== в этом проблема </li>
  4. Вызовите gcovr gcovr -v -r / projectA / --html --html-details -o test-html-details.html --object-directory = / projectA / .build /

    Вот этожалуется, что не может найти * .gcda внутри /projectA/.build/

Может кто-нибудь помочь, пожалуйста?

Спасибо,

...