无法访问标头

Can't access header

本文关键字:访问      更新时间:2023-10-16

我在一个文件夹中有我的源C++代码,在另一个文件夹(我的源代码包括在内)中有一个名为"console.h"的单独头文件。您可以看到以下内容:

#include <iostream>
#include "console.h"
using namespace std;
int main() {
   return 0;
}

我不断收到错误atal错误C1083:无法打开包含文件:"console.h":没有这样的文件或目录。我很确定这是因为标头与源代码文件不在同一位置(它在不同的文件夹中)。我可以在源代码中使用其他文件夹中的标题吗?如果是,如何?我是C++的新手,今天刚开始用它编程。我正在使用Microsoft Visual C++2008速成版作为编译器。

谢谢!

您可以指定console.h的路径来告诉编译器如何找到它。您可以指定完整路径(不可取),也可以指定为相对于当前.cpp文件位置的路径

例如,如果console.h在父文件夹中,则需要指定:

#include "..console.h"

如果它在同一级别的单独文件夹中,比如"包含"文件夹,您可以指定:

#include "includesconsole.h"

您需要在include语句中指定路径,以便该路径相对于源文件是正确的:

#include "folderconsole.h"

或者为项目添加包含目录的路径。

要对所有项目执行此操作,请右键单击项目并转到"VC++目录"属性页。将您的文件夹添加到"包括目录"列表中。

要执行此操作,请仅针对此项目右键单击该项目并转到"C/C++>常规"属性页,然后将您的文件夹添加到"其他包含目录"列表中。

如果头文件和.cpp文件在同一目录中,则代码可以正确运行。或者,在排除头文件时必须使用相对路径。

例如:

#include "../folder/console.h"  //Linux flatform

或:

#include "..\folder\console.h"  //Windows

如果使用visualstudio,可以将文件夹的目录添加到项目的头目录中。