在项目中移动了文件,现在找不到命名空间

时间:2019-01-17 18:10:44

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

以前,我所有的源文件都放在同一个文件夹中,但是我已经厌倦了这种混乱,因此我创建了一个文件夹层次结构,并在这些文件夹中组织了标头和.cpp文件,并更改了{项目.vcxproj文件中的{1}}标签。然后,我更改了源标题中的所有#include行,以匹配标题的新位置。

现在,当我进行编译时,出现了很多错误,提示找不到命名空间“ math”。可以在组织文件之前找到名称空间,因此问题可能出在其中,但是ClInclude可以正常工作。

如果我写

#include

自动完成功能会找到正确的名称空间,并且在文本界面中不会出现红色的摆动线。

我正在使用VS17社区。

2 个答案:

答案 0 :(得分:2)

实际上有两种方法可以解决您的问题。您已经注意到第一个,您始终可以使用相对路径(相对于源文件)。

#include "..\Math\math.h"

这将正常工作。您也可以 修改C ++项目属性以添加包含目录的列表。当您开始处理使用 lot 库的项目时,这对您非常有用。要添加包含目录,您需要:

    在解决方案资源管理器中,在项目上
  1. 右键单击,然后选择属性。
  2. 在左窗格中,单击 C / C ++>常规标签。
  3. 在标有其他包含目录的属性上,单击下拉箭头(您可能需要先在文本内部单击),然后选择编辑...

从这里,您可以添加将与项目一起使用的包含目录的列表。您可以使用:

绝对路径

C:\Path\to\Math

相对路径(相对于.vcxproj文件)

..\..\relative\path\to\Math

宏(Visual Studio将列出您的可用宏)

($SolutionDir)..\path\to\Math

在C ++和其他Visual Studio项目中,不仅在包含目录中,而且在构建事件中,都将大量使用宏。

添加了包含目录列表之后,您可以照常返回到将标头包含在源代码中:

#include "math.h"

如果您需要使用其中一个包含文件夹的相对路径,也可以这样做。

// some directory inside of Math
#include "MoreMath\moremath.h"
// some directory above Math
#include "..\AboveMath\abovemath.h"

希望这会有所帮助!

答案 1 :(得分:0)

我解决了...

如有必要,请删除此问题。问题是我没有回退#include "math.h"中的文件路径。他们应该改为说#include "..\Math\math.h"