无法生成 *.c.gcov 文件
我有以下结构:
Source_code/build/unix/Makefile
Source_code/code/Lib/src/lib1/a.c
gcc 编译选项中提到了 -fprofile-arcs
和 -ftest-coverage
选项。它成功生成 a.gcda
和 a.gcno
文件。当给出以下选项gcov ac
时,它会正确给出执行行的统计信息。
但无法正确生成acgcov
文件,它只包含/* EOF */
。
它抛出以下消息:
../../code/lib/src/lib1/a.c:creating 'a.c.gcov'
../../code/lib/src/lib1/a.c:cannot open source file
请让我知道生成 acgcov
文件。
I have the following structure:
Source_code/build/unix/Makefile
Source_code/code/Lib/src/lib1/a.c
The -fprofile-arcs
and -ftest-coverage
options are mentioned in the gcc compilation option. It successfully generates the a.gcda
and a.gcno
files. And when given the following option gcov a.c
, it gives the statistics correctly for lines executed.
But it is unable to generate the a.c.gcov
file properly, it only contains /* EOF */
.
It throws the following messages:
../../code/lib/src/lib1/a.c:creating 'a.c.gcov'
../../code/lib/src/lib1/a.c:cannot open source file
Please let me know to generate the a.c.gcov
file.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果找不到源文件,建议在编译时使用绝对路径。而不是使用“../”。
其次,您可以尝试复制 gcno 和 gcda 文件以匹配“../../code/lib/src/lib1/ac”。
或者修复构建规则以确保没有应用损坏的相对路径(例如../../)
In a case when source file cannot be found there is a suggest to use absolute paths within compiling. Instead of using "../".
Secondly, you could try to copy gcno and gcda files to match "../../code/lib/src/lib1/a.c".
Or to fix building rules to make sure that no broken relative paths applied (like ../../)
从编译代码的文件夹运行 gcov 对我有用。
在 .gcov 文件的顶部,它指出了完整的文件路径。例如:
如果它位于不同的文件夹中,即 /path/tmp.c,请执行:
Running gcov from the folder the code was compiled worked for me.
At the top of the .gcov file it states the complete file path. Ex.:
If it is in a different folder, i.e, /path/tmp.c, do:
https://gcc.gnu.org/ml/gcc-help/2010-04/msg00080.html