为多个 cpp 文件生成 GCOV 报告

问题描述

我在一个文件夹中有 3 个文件one.cppone.hppmain.cppone.hpp一个类声明。 one.cpp 在同一个命名空间下定义了类中的函数。我从 main 中的类调用一个函数,并在 main 中包含 one.hpp。如何使用 gcov 编译和运行所有这些文件生成覆盖率?

我尝试生成单独的目标文件并创建一个可执行文件。没有用

解决方法

按照约翰的建议使用 g++ -I. main.cpp one.cpp 编译代码。在编译和执行后获取覆盖对象将行修改为 g++ --coverage -I. main.cpp one.cpp。它生成了 a.out 并需要 .gcna.gcda 文件。生成了我想要的覆盖报告。感谢帮助。