Visual C ++包含找不到文件

时间:2010-09-19 14:57:56

标签: visual-c++ visual-studio-2010 header include

我有一个项目,我添加了所有源文件。然后我点击了构建,它说:

fatal error C1083: Cannot open include file: 'common.h': No such file or directory 1> crc64_tablegen.c

这很烦人,因为common.h在我的项目中!它就在那里!我想它可能在不同的目录中。是什么原因?我应该将所有内容移动到根目录,然后添加它吗?感谢名单!

6 个答案:

答案 0 :(得分:6)

项目结构中的文件在尝试打开包含文件时对编译器没有任何影响。如果它们位于不同的目录中,则需要适当地路径化它们。

也就是说,如果你有这个目录结构:

project/include/common.h
project/src/main.cpp

你的项目中有这个:

Project
|-> common.h
|-> main.cpp

您的主文件需要执行此操作:

#include "../include/common.h"

而不是这个:

#include "common.h"

您也可以在项目设置中将project/include定义为其他包含目录。这将允许您使用上面显示的第二个包含表单。

答案 1 :(得分:0)

编译器对其中包含的项目和文件一无所知。如果.h文件位于另一个目录中,则需要将此目录添加到列表中。例如,打开Project - Properties - C ++ - General - Additional Include Directories,并添加$(ProjectDir)Include或类似的内容。

答案 2 :(得分:0)

在VC ++中,项目中文件的位置是虚拟的,并且与实际文件路径无任何关联。您可能必须更具体地使用#include和/或将源文件移动到要找到的项目目录中。

答案 3 :(得分:0)

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

以下是完整的步骤:

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

答案 4 :(得分:0)

如果您已将.h文件添加到现有项目并且收到错误消息C1083:无法打开包含文件。确保将其正确添加到程序中。

如果你有#include,它可能无效。

尝试输入#include“course.h”。

我一直在用我的项目解决这个问题几个小时,现在才意识到这个错误。您还可以在项目属性中添加目录以使其正常工作,但是当您将其发送给其他人进行查看时,他们可能会收到相同的错误。

答案 5 :(得分:0)

我只是在Visual Studio 2017中遇到了同样的问题,并且找到了引起问题的原因。以下两个内容之间是有区别的:

#include "common.h" // Quoted form
#include <common.h> // Angle-bracket form

第一个include可以使用包含#include的文件来查找包含的头文件。

第二个include会忽略包含#include的文件,因此,如果您在Additional Include Directories中没有头文件的目录,则不会找到它,尽管IntelliSense会很乐意跳到头文件( Ctrl + Shift + G),就像第一种情况一样。

因此,请更改#include或将目录添加到“其他包含目录”。

更多信息,请访问Microsoft Docs