15

一般来说,我对 C++ 和 Eclipse 还是很陌生,所以如果我遗漏了一些相当明显的东西,我深表歉意。

我遇到的问题是我试图在我的一个源文件中包含一个头文件,但它们位于我的项目目录中的不同文件夹中。我不知道我应该如何包括他们。我上传了一张图片,显示了我要突出显示的头文件的问题。

在此处输入图像描述

如果有人能告诉我我应该使用什么“#include”语句,那将是非常棒的。

谢谢!

4

2 回答 2

25

有几个不同的选项可以完成这项工作。#include最简单的就是改成

#include "../Statistics/Statistics.h"

这将在没有任何其他修改的情况下工作。但是,如果您移动任一文件,或以某种方式更改两者之间的相对路径,则会中断。

或者,您可以将Statistics文件夹的路径添加到编译器的包含文件搜索路径中。右键单击项目名称,选择Properties -> C/C++ Build -> Settings,然后找到编译器的包含文件路径选项。对于 g++,它是-I<path/to/include/folder>. 添加这将使该#include语句像您当前拥有的那样工作。

与第二个非常相似的选项是将src文件夹的路径(而不是Statistics文件夹)添加到包含搜索路径。在这种情况下,您必须将语句更改为

#include "Statistics/Statistics.h"
于 2012-11-08T22:25:09.863 回答
1

当您在 src 文件夹中创建子文件夹时,每个 cpp 文件都会在它所在的文件夹中编译。因此,任何""包含都需要指定从该文件夹到另一个文件夹的相对路径。

在您的情况下,要从 FileInOut 文件夹中获取,您需要返回上一级,然后进入 Statistics 文件夹

例如

#include "../Statistics/Statistics.h"

另一种选择是,如果您将包含在您的 src 目录中,则将 src 目录添加到包含路径中。现在,当您包含时,您只需要指定来自 src 根目录的路径。

例如。

#include "Statistics/Statistics.h"
于 2012-11-08T22:26:33.893 回答