gcov / lcov: проблемы с генерацией покрытия для заголовочных файлов

lcov не генерирует данные покрытия для заголовочных файлов, включенных с использованием пути относительно корня проекта.

У меня есть следующая упрощенная структура файла:
./main/main.cpp:

#include "bar/bar.hpp"int main()
{
Bar bar;
}

./bar/bar.hpp:

struct Bar
{
Bar(){}
};

./ Makefile:

cov: app
./app
lcov -c -d . -b . -o cov.info
genhtml cov.info --output-directory ./html/

GCOV_FLAGS = -g -fprofile-arcs -ftest-coverage

app : main/main.o
g++ ${GCOV_FLAGS} main/main.o -o app

main/main.o : main/main.cpp
g++ -I. ${GCOV_FLAGS} -c main/main.cpp -o main/main.o

Когда я запускаю make cov, я получаю следующее предупреждение:

geninfo: WARNING: no data found for /home/casserso/playground/gcov/./bar/bar.hpp

и нет данных покрытия для bar.hpp

Если я изменю #include «bar / bar.hpp» на #include «../bar/bar.hpp» в main.cpp, все будет хорошо.

Может кто-нибудь, пожалуйста, помогите мне решить эту проблему

Спасибо
Кристиан

1

Решение

Обновление версии lcov с 1.7 до 1.9 решило проблему.

Спасибо за все комментарии.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]