以前,我所有的源文件都放在同一个文件夹中,但是我已经厌倦了这种混乱,因此我创建了一个文件夹层次结构,并在这些文件夹中组织了标头和.cpp文件,并更改了{项目.vcxproj文件中的{1}}标签。然后,我更改了源标题中的所有#include行,以匹配标题的新位置。
现在,当我进行编译时,出现了很多错误,提示找不到命名空间“ math”。可以在组织文件之前找到名称空间,因此问题可能出在其中,但是ClInclude
可以正常工作。
如果我写
#include
自动完成功能会找到正确的名称空间,并且在文本界面中不会出现红色的摆动线。
我正在使用VS17社区。 p>
答案 0 :(得分:2)
实际上有两种方法可以解决您的问题。您已经注意到第一个,您始终可以使用相对路径(相对于源文件)。
#include "..\Math\math.h"
这将正常工作。您也可以 修改C ++项目属性以添加包含目录的列表。当您开始处理使用 lot 库的项目时,这对您非常有用。要添加包含目录,您需要:
从这里,您可以添加将与项目一起使用的包含目录的列表。您可以使用:
C:\Path\to\Math
..\..\relative\path\to\Math
($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"
。