1

lcov 不会为使用相对于项目根目录的路径包含的头文件生成覆盖率数据。

我有以下简化的文件结构:./main/main.cpp:

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

./bar/bar.hpp:

struct Bar
{
    Bar(){}
};

./生成文件:

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" 一切都很好。

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

谢谢克里斯蒂安

4

1 回答 1

1

将 lcov 版本从 1.7 更新到 1.9 解决了这个问题。
感谢所有输入。

于 2012-11-06T13:47:27.643 回答