【问题标题】: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】:

        尝试在附加包含目录下的项目设置中添加路径。

        以下是完整的步骤:

        1. 下拉工具菜单,然后选择选项
        2. 左侧框中是选项类别列表。选择“项目和解决方案”,然后选择子类别“VC++ 目录”
        3. 右上角是一个下拉框,用于选择一组特定的默认目录,包括“可执行文件”、“包含文件”、“参考文件”、“库文件”和“源文件” .通常,您只想添加到“包含文件”或“库文件”列表中。选择“包含文件”
        4. 窗口右侧的中间是目录列表。通过按窗口上方的“新行”按钮或按“Ctrl-Insert”来添加包含路径。将出现一个空白条目,供您键入路径或通过单击“...”按钮进行导航。通常,您想要的最终路径将以一个名为“include”的文件夹结尾。现在输入路径。
        5. 大功告成,点击确定

        【讨论】:

          【解决方案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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2020-10-19
              • 1970-01-01
              • 2012-06-13
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-02-28
              • 2016-07-12
              相关资源
              最近更新 更多