我正在使用visual studio 2005来创建一个项目。我在项目中有文件夹结构:一个名为code的文件夹。此文件夹包含所有* .cxx文件。
现在,我在头文件xyz.h中创建了一个类xyz.并定义了xyz.cxx中放在代码文件夹中的所有内容。 但是现在当我尝试使用visual studio编译它时,它会抛出一个错误 “致命错误C1083:无法打开包含文件:'xyz.h':没有这样的文件或目录”。如何纠正这个问题。
答案 0 :(得分:16)
将“code”文件夹添加到Visual Studio
中的项目属性中项目 - >属性 - >配置属性 - > C / C ++ - >其他包含目录
答案 1 :(得分:15)
将xyz.h文件移动到其他位置,以便预处理器可以找到它,或者更改#include
语句,以便预处理器找到它已经存在的位置。
预处理器查找包含文件的位置描述为here。一种解决方案是将xyz.h文件放在预处理器将要跟踪该搜索模式的文件夹中。
或者,您可以更改#include语句,以便预处理器可以找到它。您告诉我们xyz.cxx文件位于'code'文件夹中,但您没有告诉我们您将xyz.h文件放在何处。假设您的文件结构如下所示......
<some folder>\xyz.h
<some folder>\code\xyz.cxx
在这种情况下,xyz.cxx中的#include语句看起来应该是这样的..
#include "..\xyz.h"
另一方面,假设您的文件结构如下所示......
<some folder>\include\xyz.h
<some folder>\code\xyz.cxx
在这种情况下,xyz.cxx中的#include语句看起来应该是这样的..
#include "..\include\xyz.h"
更新:另一方面,@ In silico在评论中指出,如果您使用的是#include <xyz.h>
,则应该将其更改为#include "xyz.h"
答案 2 :(得分:3)
我在另一种情况下遇到了这个错误,为那些通过搜索到达的人发布了解决方案:在Visual Studio中,我从一个项目中复制了一个文件并粘贴到另一个项目中。结果是创建了一个符号链接,而不是一个实际的副本。因此,项目未按预期在当前工作目录中找到该文件。当我制作物理副本时,在Windows资源管理器中,突然#include "myfile.h"
工作了。
答案 3 :(得分:0)
以下方法帮助了我。
步骤:
1.转到缺少的头文件所在的相应目录。 (在我的情况下,缺少.. / include / unicode / coll.h)并复制头文件所在的目录位置。(复制到include目录。)
2.右键单击解决方案资源管理器中的项目 - >属性 - >配置属性 - > VC ++目录 - >包含目录。 将复制的路径粘贴到此处。
3.这解决了我的问题。我希望这有帮助!
答案 4 :(得分:0)