2010-08-02 122 views
1

我正在使用-fprofile-arcs -ftest-coverage标志在32位机器上交叉编译我的可执行文件以进行覆盖。并且由此产生的可执行文件在64位的目标机器上运行。gcov不会生成覆盖率文件

当我运行可执行文件时,它不会生成.bb .bbg和.da文件。什么可能是它的原因。

+0

我们至少可以看到您用于编译/链接的命令行吗? – Dummy00001 2010-08-02 12:52:33

+0

当我在不同的机器上运行exe文件时,gcov正在创建完整的目录层次结构,其中的目标文件位于主机中,而我并不知道gcda文件位于此目录中。 – Poorna 2010-08-05 18:14:34

+0

1)我没有得到你的评论,但我非常感谢你的命令行。 2)你可以尝试一下没有交叉编译? – 2011-03-22 20:45:45

回答

1

最可能的原因是数据文件是在与编译相同的目录中生成的,可能无法在执行测试的目标平台上访问或不可写入。

由于gcc版本不错,可以使用环境变量GCOV_PREFIX和GCOV_PREFIX_STRIP来覆盖默认目录。

+0

你是我的英雄。这样一个明显的---但容易忽视---解决方案。 – Richard 2012-03-07 21:55:53

相关问题