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, все будет хорошо.
Может кто-нибудь, пожалуйста, помогите мне решить эту проблему
Спасибо
Кристиан
Обновление версии lcov с 1.7 до 1.9 решило проблему.
Спасибо за все комментарии.
Других решений пока нет …