2012-11-01 35 views
1

lcov不会为使用相对于项目根的路径包含的头文件生成覆盖数据。gcov/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.hpp” #包括” ../bar不产生覆盖数据/bar.hpp“在main.cpp中一切正常。

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

感谢 基督教

+1

请向我们展示主要和标题的完整目录路径。我怀疑你在错误的位置。 – andre

+0

/home/casserso/playground/gcov/main/main.cpp – asserson

+0

/home/casserso/playground/gcov/bar/bar.hpp – asserson

回答

1

更新版本LCOV从1.7到1.9解决了这个问题。
感谢您的所有意见。