【问题标题】:Visual C++ Include File not found未找到 Visual C++ 包含文件
【发布时间】:2011-04-14 08:32:57
【问题描述】:
我有一个项目,我添加了所有的源文件。然后我点击构建,它说:
fatal error C1083: Cannot open include file: 'common.h': No such file or directory
1> crc64_tablegen.c
这很烦人,因为 common.h 在我的项目中!它就在那里!我认为它可能在不同的目录中。是原因吗?我应该将所有内容都移到根目录,然后添加吗?谢谢!
【问题讨论】:
标签:
visual-c++
visual-studio-2010
header
include
【解决方案1】:
当编译器尝试打开包含文件时,文件在项目结构中的位置对编译器没有影响。如果它们位于不同的目录中,则需要适当地为它们设置路径。
也就是说,如果你有这样的目录结构:
project/include/common.h
project/src/main.cpp
你的项目中有这个:
Project
|-> common.h
|-> main.cpp
您的主文件需要这样做:
#include "../include/common.h"
不是这个:
#include "common.h"
您也可以在项目设置中将project/include 定义为附加包含目录。这将允许您使用上面显示的第二个包含表单。
【解决方案2】:
编译器对项目和其中包含的文件一无所知。如果 .h 文件在另一个目录中,则需要将此目录添加到列表中。例如,打开 Project - Properties - C++ - General - Additional Include Directories,添加 $(ProjectDir)Include 之类的。
【解决方案3】:
在 VC++ 中,项目中文件的位置是虚拟的,与实际文件路径没有任何链接。您可能必须更具体地使用#include 和/或将源文件移动到项目目录中才能找到。
【解决方案4】:
尝试在附加包含目录下的项目设置中添加路径。
以下是完整的步骤:
- 下拉工具菜单,然后选择选项
- 左侧框中是选项类别列表。选择“项目和解决方案”,然后选择子类别“VC++ 目录”
- 右上角是一个下拉框,用于选择一组特定的默认目录,包括“可执行文件”、“包含文件”、“参考文件”、“库文件”和“源文件” .通常,您只想添加到“包含文件”或“库文件”列表中。选择“包含文件”
- 窗口右侧的中间是目录列表。通过按窗口上方的“新行”按钮或按“Ctrl-Insert”来添加包含路径。将出现一个空白条目,供您键入路径或通过单击“...”按钮进行导航。通常,您想要的最终路径将以一个名为“include”的文件夹结尾。现在输入路径。
- 大功告成,点击确定
【解决方案5】:
如果您已将 .h 文件添加到现有项目并收到错误消息 C1083:无法打开包含文件。确保已将其正确添加到程序中。
如果你有#include,它可能不起作用。
尝试输入 #include "course.h"。
我已经用我的项目解决了这个问题几个小时,现在才意识到这个错误。您也可以在项目属性中添加目录以使其正常工作,但是当您将其发送给其他人查看时,他们可能会收到相同的错误。
【解决方案6】:
我刚刚在 Visual Studio 2017 中遇到了同样的问题,并找到了导致它的原因。以下两者有区别包括:
#include "common.h" // Quoted form
#include <common.h> // Angle-bracket form
首先包含可以使用包含#include 的文件来查找包含的头文件。
第二个包含忽略包含#include的文件,因此如果您在附加包含目录中没有头文件的目录,则不会找到它,尽管智能感知会愉快地跳转到头文件(Ctrl+ Shift+G) 就像在第一种情况下一样包含在内。
因此,要么更改 #include,要么将目录添加到 Additional Include Directories。
更多信息请访问Microsoft Docs。