致命错误C1083:无法打开包含文件:'xyz.h':没有这样的文件或目录?

Apo*_*hay 19 c++

我正在使用visual studio 2005来创建一个项目.我在项目中有文件夹结构:一个名为code的文件夹.此文件夹包含所有*.cxx文件.

现在,我在头文件xyz.h中创建了一个类xyz. 并定义了xyz.cxx中放在代码文件夹中的所有内容.但是现在当我尝试使用visual studio编译它时,它会抛出一个错误"致命错误C1083:无法打开包含文件:'xyz.h':没有这样的文件或目录".如何纠正这个问题.

Hol*_*mar 16

将"code"文件夹添加到Visual Studio中的项目属性

项目 - >属性 - >配置属性 - > C/C++ - >其他包含目录

  • @Apoorva我想你正在考虑工具 - >选项 - >项目和解决方案 - > VC++目录 - >包含文件?更改该设置仅适用于您修改的Visual Studio实例.建议Holger建议存储在vcproj文件中,因此当您将项目移动到另一个系统时,设置随之移动. (3认同)

Fra*_*yne 15

将xyz.h文件移动到其他位置,以便预处理器可以找到它,或者更改#include语句,以便预处理器找到它已经存在的位置.

当预处理程序将查找包含文件描述这里.一种解决方案是将xyz.h文件放在预处理器将要跟踪该搜索模式的文件夹中.

或者,您可以更改#include语句,以便预处理器可以找到它.您告诉我们xyz.cxx文件位于'code'文件夹中,但您没有告诉我们您将xyz.h文件放在何处.假设您的文件结构如下所示......

<some folder>\xyz.h
<some folder>\code\xyz.cxx
Run Code Online (Sandbox Code Playgroud)

在这种情况下,xyz.cxx中的#include语句看起来应该是这样的..

#include "..\xyz.h"
Run Code Online (Sandbox Code Playgroud)

另一方面,假设您的文件结构如下所示......

<some folder>\include\xyz.h
<some folder>\code\xyz.cxx
Run Code Online (Sandbox Code Playgroud)

在这种情况下,xyz.cxx中的#include语句看起来应该是这样的..

#include "..\include\xyz.h"
Run Code Online (Sandbox Code Playgroud)

更新:另一方面,正如@In silico在评论中指出的那样,如果您正在使用,#include <xyz.h>您可能应该将其更改为#include "xyz.h"


sfu*_*qua 6

我在另一种情况下遇到了这个错误,发布了通过搜索到达的解决方案:在 Visual Studio 中,我从一个项目复制了一个文件并粘贴到另一个项目中。事实证明,这创建了一个符号链接,而不是实际的副本。因此该项目没有按预期在当前工作目录中找到该文件。当我在 Windows 资源管理器中制作物理副本时,突然就#include "myfile.h"可以了。