C++ Visual Studio 2010-文件夹中不带.././Include.h的文件

C++ Visual Studio 2010-文件夹中不带.././Include.h的文件,c++,visual-studio,visual-studio-2010,file-structure,C++,Visual Studio,Visual Studio 2010,File Structure,我拥有的项目的物理文件结构类似于: 源文件夹 引擎 折叠1 折叠2 等等 我在“源”中有一些文件,在“引擎”中有一些文件,在“引擎/文件夹1”中有一些文件,等等 在我的项目中,我已经完成了所有配置->源目录,包括Source、Engine、Engine/Folder2等。但是,当我尝试包含“Foo.h”或其他文件夹中的任何内容时,仍然会出现错误,无法找到文件。有没有办法让我不必面对所有的事情 有没有办法让我不必面对所有的事情 是的,有。答案取决于几个因素,我相信我会错过一些 检查以下各项

我拥有的项目的物理文件结构类似于:

  • 源文件夹
  • 引擎
    • 折叠1
    • 折叠2
等等

我在“源”中有一些文件,在“引擎”中有一些文件,在“引擎/文件夹1”中有一些文件,等等

在我的项目中,我已经完成了所有配置->源目录,包括Source、Engine、Engine/Folder2等。但是,当我尝试包含“Foo.h”或其他文件夹中的任何内容时,仍然会出现错误,无法找到文件。有没有办法让我不必面对所有的事情

有没有办法让我不必面对所有的事情

是的,有。答案取决于几个因素,我相信我会错过一些

检查以下各项:

  • 在编译器设置中,选中“C/C++”下的“附加包含”
  • 同时在“VC++”中签入“包含目录”的值
  • 检查“C/C++/预处理器”中“忽略标准包含路径”的设置
  • 检查预编译头设置
  • 检查源文件和编译器设置中的“#定义”/“#未定义”
  • 检查项目可能正在使用或继承的属性页
如果使用“foo.h”(而不是),预处理器将首先查看特定于项目的文件夹,最后查看特定于IDE的文件夹。如果使用,则首先在标准包含文件夹中开始,例如,标准运行时库所需的文件夹

当文件使用“./foo.h”时,它是一个相对于包含该文件的文件位置的路径。可能会有棘手的例外情况

还有很多事情会影响预处理器如何找到其包含路径。如果不确定预处理器正在对特定文件执行什么操作,可以通过在“预处理器设置”中打开“对文件进行预处理”使预处理器输出可见。该文件在预处理器完成后、编译器开始工作之前向您显示文件的源代码

有了更多的经验,尤其是文件夹/项目结构以及如何包含文件的清晰策略,整个过程变得更加容易。例如,确保将“#pragma once”作为每个include文件中的第一个非注释行


我希望这能给你下一步的一些想法。祝你好运
  • 当包含的文件路径不需要使用“.”时,请使用相对路径
  • 当需要使用“.”时,请使用绝对路径(即相对于源文件的根文件夹)

要使绝对路径起作用,请将根源文件夹添加到“包含目录”列表(相对于项目的文件位置)。

我认为您要更改的是包含路径,而不是源目录。这是一个很好的观点,谢谢。:p但是,我现在发现了一些错误,无法找到很多源文件(仍然保存在源目录下)或“boost/shared_ptr.hpp”。[我应该编辑我的问题吗?]