deu*_*ger 28 c++ automake gcc code-coverage gcov
是否可以通过运行链接到使用--coverage选项构建的共享库的可执行文件来生成gcov数据文件(.gcda文件)?
基本上,我有一个主库,它由多个编译成一个共享库的c ++文件组成,然后是一个名为"test"的子目录,其中包含一个链接到并测试主库的测试程序.一切都编译好,并为库源文件和测试源文件生成.gcno文件..gcda文件只为测试源文件生成,但我真的需要它们用于编译到共享库中的实际源文件.
有任何想法吗?
附加信息:
- 这是所有C++代码
- 一切都是使用由automake生成的make脚本构建的
- 在共享库中
为lib_la_CPPFLAGS和lib_la_LDFLAGS指定了--coverage选项Makefile.am - 为AM_CPPFLAGS和AM_LDFLAGS指定了--coverage选项在测试可执行文件Makefile.am中
- 测试源文件使用Google Test(C++单元测试框架)
编辑:固定间距问题
deu*_*ger 28
我终于通过gcc人员的帮助解决了这个问题.请参阅此处的主题:http://gcc.gnu.org/ml/gcc-help/2010-09/msg00130.html.
事实证明.gcda文件被放在.libs目录中,因为那是共享库(.so)文件所在的位置.为了让gcov产生输出,我不得不将.gcda文件向上移动到源文件所在的位置.
此外,这是一个类似的线程,其他人遇到了一些相同的问题:gcov可以处理共享对象吗?.
| 归档时间: |
|
| 查看次数: |
14129 次 |
| 最近记录: |