我正在使用C ++ / OpenGL和一些有用的库在Visual Studio 2015中开发一个项目。
我将自己的代码拆分为两个主目录:所有.cpp文件的“/ src”和所有标题的“/ include”目录。两个文件夹的目录结构相同,即:所有图形相关文件都进入“/ include / Graphics”或“/ src / Graphics”,具体取决于它们是源代码(.cpp)还是标题(.h)
A picture of the project structure
如果我想“#include”一个头文件(总是在“/ include”中),VS2015仍然会在“/ src”目录中查找头文件。 即使它找不到,它仍然会将这些文件夹添加到列表中。
我知道我可以使用括号(“#include<>”)来消除此问题。但由于C ++ / VS2015本身,括号列表已经非常拥挤。
我已经尝试更改一些项目设置。也就是说,我在“C ++ / General / Additional Include Directories”下添加了“/ include”目录。我已将“/ src”文件夹添加到“VC ++目录/源目录”。
问题1:有什么方法可以阻止VS2015在包含列表中显示两次“/ src”目录吗?
问题2:如何管理#include列表中显示的内容以及不包含的内容?
虽然它可能是一个功能,但它确实很烦人,在这种情况下没有用处。可以选择两个列表条目,它们都可以使用。我假设这是因为VS2015“计算出”头文件实际位于哪个目录。
答案 0 :(得分:1)
无需向Source Directories
添加任何内容。您的所有源文件都已成为项目的一部分,而Source Directories
可用于处理外部代码。
无需将/include
目录添加到Additional Include Directories
或使用<>
包含它们,只有在开发仅限标头库时才有意义。通常,当包含来自同一项目的头文件时,使用相对路径,例如Engine.cpp
可以包含#include "../include/Engine.h"
。正如您所看到的那样,将头文件存储在单独的文件夹中会使它们变得有些难看,因此您可能希望将相应的源文件和头文件存储在同一文件夹中,以便可以包含标题#include "Engine.h"
。
请注意,Visual Studio提供了&#34; filter&#34;在解决方案资源管理器中查看,如果仍想这样做,仍然可以单独对头文件和源文件进行分组。