使用 gcov 测试 C++ 程序
Using gcov to test a c++ program
我是第一次使用 gcov 来分析我的程序 (C++)
该程序由三个 类 组成,我使用 Code::Blocks 构建了项目。
当我使用以下命令调用程序时:
C:\Users\XXX\Documents\Test\TreeObjModel\src>gcc
-fprofile-arcs -ftest-coverage Tree.cpp
我收到以下错误:
Tree.cpp:1:18: fatal error: Tree.h: No such file or directory
compilation terminated
虽然 cpp 文件在目录 "C:\Users\XXX\Documents\Test\TreeObjModel\src\" 中,但头文件在目录 "C:\Users\XXX\Documents\Test\TreeObjModel\include\"
中
我们是否需要将代码和头文件放在同一目录中?
提前致谢。
您应该使用 -I
标志来指定您的头文件所在的位置。
从你的例子来看,你应该添加-I../include
您至少有两个选项可以指示编译器在哪里可以找到头文件(包括)。
-Ipath_to_includes
作为 gcc 编译器的参数。例如。 -I../include
- 当包含在您的程序中时,请指定目录。例如。
#include "../include/foo.h"
我的策略是成功编译我的项目,然后才尝试使用其他一些东西,比如代码覆盖率标志。我这样说是因为你的错误与 gcov 没有任何关系,并且试图在你的程序编译之前检测你的程序以获得代码覆盖率,这会让事情变得更加复杂。一步一个脚印 ;)
我是第一次使用 gcov 来分析我的程序 (C++) 该程序由三个 类 组成,我使用 Code::Blocks 构建了项目。 当我使用以下命令调用程序时:
C:\Users\XXX\Documents\Test\TreeObjModel\src>gcc -fprofile-arcs -ftest-coverage Tree.cpp
我收到以下错误:
Tree.cpp:1:18: fatal error: Tree.h: No such file or directory compilation terminated
虽然 cpp 文件在目录 "C:\Users\XXX\Documents\Test\TreeObjModel\src\" 中,但头文件在目录 "C:\Users\XXX\Documents\Test\TreeObjModel\include\"
中我们是否需要将代码和头文件放在同一目录中?
提前致谢。
您应该使用 -I
标志来指定您的头文件所在的位置。
从你的例子来看,你应该添加-I../include
您至少有两个选项可以指示编译器在哪里可以找到头文件(包括)。
-Ipath_to_includes
作为 gcc 编译器的参数。例如。-I../include
- 当包含在您的程序中时,请指定目录。例如。
#include "../include/foo.h"
我的策略是成功编译我的项目,然后才尝试使用其他一些东西,比如代码覆盖率标志。我这样说是因为你的错误与 gcov 没有任何关系,并且试图在你的程序编译之前检测你的程序以获得代码覆盖率,这会让事情变得更加复杂。一步一个脚印 ;)