4

我正在使用 GCC 版本 3.3.6。-fprofile-arcs当我使用and检测我的目标文件时-ftest-coverage,会创建相应的*.bband*.bbg文件。

然后将目标文件链接到一个静态库libfoo.a中:
ar rcs libfoo.a foo1.o foo2.o.

最后,将一系列静态库链接在一起以创建我的可执行文件:
gcc -fprofile-arcs -o foo.o <static libraries linked all>

现在,当我运行映像时,不会创建 *.da 文件。有没有我遗漏的步骤?有没有人有任何其他建议?

谢谢。

4

1 回答 1

3

可执行文件需要与 gcov 库链接:

gcc -fprofile-arcs -o foo.o <static libraries linked all> -lgcov

编辑:从 gcc 4.1.2 开始,该--coverage选项可以用作-fprofile-arcs -ftest-coverage(编译时)和-lgcov(链接时)的同义词。

此外,值得注意的是,文件是在与编译相同的目录中创建的。该目录应可从执行环境访问。最近版本的 gcc (4-1) 引入了环境变量来调整目标目录:GCOV_PREFIX 和 GCOV_PREFIX_STRIP,请参阅 gcc doc 的cross-profiling 部分

于 2010-12-07T22:43:00.277 回答