指定Visual Studio 2015查找头文件的位置

时间:2017-09-09 13:37:23

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

我正在使用C ++ / OpenGL和一些有用的库在Visual Studio 2015中开发一个项目。

我将自己的代码拆分为两个主目录:所有.cpp文件的“/ src”和所有标题的“/ include”目录。两个文件夹的目录结构相同,即:所有图形相关文件都进入“/ include / Graphics”或“/ src / Graphics”,具体取决于它们是源代码(.cpp)还是标题(.h)

A picture of the project structure

如果我想“#include”一个头文件(总是在“/ include”中),VS2015仍然会在“/ src”目录中查找头文件。 即使它找不到,它仍然会将这些文件夹添加到列表中。

The #include list

我知道我可以使用括号(“#include<>”)来消除此问题。但由于C ++ / VS2015本身,括号列表已经非常拥挤。

我已经尝试更改一些项目设置。也就是说,我在“C ++ / General / Additional Include Directories”下添加了“/ include”目录。我已将“/ src”文件夹添加到“VC ++目录/源目录”。

问题1:有什么方法可以阻止VS2015在包含列表中显示两次“/ src”目录吗?

问题2:如何管理#include列表中显示的内容以及不包含的内容?

虽然它可能是一个功能,但它确实很烦人,在这种情况下没有用处。可以选择两个列表条目,它们都可以使用。我假设这是因为VS2015“计算出”头文件实际位于哪个目录。

1 个答案:

答案 0 :(得分:1)

无需向Source Directories添加任何内容。您的所有源文件都已成为项目的一部分,而Source Directories可用于处理外部代码。

无需将/include目录添加到Additional Include Directories或使用<>包含它们,只有在开发仅限标头库时才有意义。通常,当包含来自同一项目的头文件时,使用相对路径,例如Engine.cpp可以包含#include "../include/Engine.h"。正如您所看到的那样,将头文件存储在单独的文件夹中会使它们变得有些难看,因此您可能希望将相应的源文件和头文件存储在同一文件夹中,以便可以包含标题#include "Engine.h"

请注意,Visual Studio提供了&#34; filter&#34;在解决方案资源管理器中查看,如果仍想这样做,仍然可以单独对头文件和源文件进行分组。