Visual Studio无法“查看”我包含的头文件

时间:2012-09-19 07:11:19

标签: c++ visual-studio-2008 include

我在Visual Studio 2008中创建了一个空的'Demo'项目,并将一些现有项目添加到我的解决方案中。在main.cpp文件中包含“MyHeader.h”(其他项目的标题),该文件位于“Demo”中。还在“工具/选项/ VC ++目录/包含文件”部分中添加了头文件的路径。但intellisense说:“文件'MyHeader.h'在当前源文件的目录或构建系统路径中找不到......”

问题如何解决?感谢。

13 个答案:

答案 0 :(得分:20)

删除解决方案目录中的.sdf文件。它只是Intellisense数据库,Visual Studio将在您下次打开该解决方案时重新创建它。此db可能会损坏并导致IDE无法找到内容,并且由于编译器会动态生成此信息,因此不会受到影响。

答案 1 :(得分:17)

如果在菜单中选择Project然后选择All Files,则所有文件都应显示在解决方案资源管理器中,这些文件实际位于项目地图中,但尚未包含在项目中。如果右键单击要在解决方案资源管理器中添加的文件,则可以包含它。

答案 2 :(得分:2)

如果只有IDE指示它无法找到包含的文件,但编译成功,则问题只是IntelliSense与最近的更改不完全一致。根据我自己的经验,这可以在包含现有项目时特别发生。 删除解决方案目录中生成的.sdf文件(= IntelliSense数据库)会强制Visual Studio重新生成它,以使其再次更新。只是做一个“干净”可能会做同样的事情,但需要更多的时间,因为一切都将再次生成。

答案 3 :(得分:2)

我知道这是一个较老的问题,但上述答案都不适合我。在我的情况下,问题结果是我有绝对包含路径但没有驱动器号。编译很好,但是当我右键单击并尝试打开它时,Visual Studio无法找到包含文件。将驱动器号添加到我的包含路径更正了问题。

我绝不会建议在项目文件的任何方面硬编码驱动器号;要么使用相对路径,宏,环境变量,要么在任何永久情况下使用树的某种混合。但是,在这种情况下,我在一些临时项目中工作,在短期内需要绝对路径。无法右键单击打开文件是非常令人沮丧的,希望这将有助于其他人。

答案 4 :(得分:2)

关闭并重新启动计算机后,这件事发生在我身上。最终我意识到架构已经以某种方式从x64改为ARM。

答案 5 :(得分:1)

如果visual studio说你错过了当前源文件夹中的某个文件,那么我使用了一个解决方案。只需右键单击要添加的文件,然后选择Open Document,如果它确实不存在,那么您应该看到cannot find file in the source file path = "somewhere in your computer"之类的内容,然后您可以将源文件添加到该文件中路径首先看看它是否有效。

答案 6 :(得分:0)

尝试将头文件添加到项目的文件中。 (右键单击项目 - > gt;添加现有文件。)

答案 7 :(得分:0)

根据我的经验,使用VS2010,当在编译时无法找到包含文件时,执行干净,然后构建通常可以解决问题。编辑器能够打开包含文件然后编译器宣布无法找到该文件,即使在屏幕上打开也不是很少见!

答案 8 :(得分:0)

以下是我如何解决这个问题。

  • 转到项目 - >显示所有文件。

enter image description here

  • 右键单击解决方案资源管理器中的所有文件,然后在要包含的所有文件中单击“包括在项目中”。

enter image description here

完成:)

答案 9 :(得分:0)

我遇到了这个问题,但是提供的解决方案并没有直接帮助我,所以我分享了如何使自己陷入类似情况并暂时解决该问题的方法。

我在现有解决方案中创建了一个新项目,并从该解决方案中的另一个项目复制并粘贴了Header和CPP文件,我需要通过IDE将其包含在新项目中。 Intellisense显示错误,提示它无法解析对头文件的引用,并且编译代码也失败,并出现相同的错误。

在这里阅读文章后,我使用Windows File Explorer检查了项目文件夹,仅找到了 main.cpp 文件。由于某种原因,我的头文件和CPP文件的复制和粘贴只是一个引用? (我认为),并且没有将文件物理复制到新的项目文件中。

我从Visual Studio的“项目”视图中删除了文件,并使用“文件资源管理器”将所需的文件复制到项目文件夹/目录中。然后,我通过显示所有文件引用了此处发布的其他解决方案,以“将文件包含在项目中”

它归结为实际上不在IDE中正确显示的文件实际上不在Project文件夹/目录中的文件。

请注意:我知道复制代码不是最佳实践,我的情况纯粹是一个学习/爱好项目。我和所有最终遇到类似情况的人在重用其他项目中的代码时正确使用IDE /项目/解决方案设置可能是我最大的利益-我仍在学习,有一天我会解决这个问题!

答案 10 :(得分:0)

就我而言,在 Visual Studio 2019 中,我将一个头文件复制到项目目录中,就在其他文件附近。 Intellisense 可以看到它,但构建失败。公平地说,它实际上并没有添加到项目中。我将它添加为现有项目,但这是 Visual Studio 仍然没有考虑到它的一点。
解决方案:

  1. 关闭项目。
  2. 删除 .vs 目录。
  3. 重新打开项目。 现在,Visual Studio 会重新创建包含所有内容的目录,并且现在可以看到包含的文件。

答案 11 :(得分:0)

我从 2015 年升级到 Visual Studio 2019 后遇到了这个问题。它可以很好地编译项目,但 Intellisense 和 IDE 找不到任何头文件。

该项目只有 Win32/Debug 的有效配置。未为其他环境正确设置包含路径。尽管 Visual Studio 将当前环境显示为 Win32/Debug,但 Intellisense 肯定在使用其他东西。

将当前环境更改为 x64/Release,然后返回 Win32/Debug 修复它。

答案 12 :(得分:0)

如果有人向下滚动到这个底部,对我有用的是禁用 Disable Database 选项,即将它设置为 FalseTools|Options|Text Editor|C/C++|Advanced。出于某种原因,它为我设置为 True

enter image description here

根据 docs,如果设置为 True

<块引用>

全部使用代码浏览数据库(SDF),其他全部使用 浏览/导航选项,以及所有 IntelliSense 功能,除了 #include 自动完成已禁用。

相关问题