使用gcov测试c ++程序

时间:2015-07-06 02:25:07

标签: c++ gcc g++

我第一次使用gcov来分析我的程序(C ++) 该程序由三个类组成,我使用Code :: Blocks构建了该项目。 当我使用以下命令调用程序时:

  

C:\用户\ XXX \文件\测试\ TreeObjModel \ SRC> GCC   -fprofile-arcs -ftest-coverage Tree.cpp

我收到以下错误:

  

Tree.cpp:1:18:致命错误:Tree.h:没有这样的文件或目录   编译终止

当cpp文件位于“C:\ Users \ XXX \ Documents \ Test \ TreeObjModel \ src \”目录中时,头文件位于目录“C:\ Users \ XXX \ Documents \ Test \ TreeObjModel \ include”中\“

我们是否需要在同一目录中同时拥有代码和头文件?

提前致谢。

2 个答案:

答案 0 :(得分:1)

您应该使用-I标志来指定头文件的位置。

从您的示例来看,您应该添加-I../include

答案 1 :(得分:0)

您至少有两个选项可指示编译器在何处查找头文件(包括)。

  1. -Ipath_to_includes作为gcc编译器的参数。例如。 -I../include
  2. 在程序中包含时,请指定目录。例如。 #include "../include/foo.h"
  3. 我的策略是成功编译我的项目,然后尝试使用其他一些东西,比如代码覆盖的标志。我之所以这么说,是因为你的错误与gcov无关,并且在你的程序编译之前尝试检测程序以获得代码覆盖率,这会使事情变得更加复杂。一步一步;)