我正在尝试为我的项目生成覆盖率报告,并遇到问题。
我了解要获取覆盖率信息,我需要.gcno,.gcda和源文件。 我当前的项目目录结构是
/root/proj/src --> top level Makefile and main.c
/root/proj/src/module1
/root/proj/src/module2
..... -> contains all .c/.h ,makefile
/root/proj/build/obj -> contains all .o,.gcno,.gcda files after compilation
/root/proj/build/exe -> contains the executable
(在下面复制最少行以显示问题)
cd /root/proj/build/obj
我跑步时
lcov -b ../../src/ --directory . --capture --output-file app.info
Processing module1.gcda
module1.c:cannot open source file
......
Finished .info-file creation
然后:
genhtml --legend -o ./latest_code_cov/ app.info
Reading data file app.info
Found 5 entries.
Found common filename prefix "/root/proj/src"
Writing .css and .png files.
Generating output.
Processing file src/module1.c
genhtml: ERROR: cannot read /root/proj/src/module1.c
bash-4.1$
1)我是否需要更改我的makefile以将.gcno/.gcda
文件转储到与源文件相同的文件夹中?
2)有没有一种方法(一些标志)来设置.gcno/.gcda
文件中的源文件路径?
有什么建议吗?
gcc版本4.4.7 20120313(Red Hat 4.4.7-11)(GCC)
lcov:LCOV版本1.13