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生成覆盖率数据

如果我在main.cpp中将#include“bar / bar.hpp”更改为#include“../bar/bar.hpp”,一切都很好。

有人可以帮我解决这个问题吗

谢谢
基督教

最佳答案

将lcov版本从1.7更新到1.9解决了该问题。

感谢您的所有投入。

关于c++ - gcov/lcov:生成头文件覆盖率时出现问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13178209/

10-12 14:49
查看更多