在C++中相对于项目目录包含文件

6

我在项目源代码的子目录中有一些头文件。在这些文件中需要使用 #include "../../Foo.h",在我看来有点凌乱,我更喜欢使用 #include "dir1/dir2/Foo.h",以便更快地阅读和理解 - 这是否可能,如果可能,该怎么做?

1个回答

13

显然,你可以(而且应该)。

告诉编译器将“projectdir/../..”添加到其包含路径中。在Microsoft上,使用的是/I开关,在gcc上则是-I

---- 编辑 -----

在Visual Studio中,你可以使用。在这种情况下,应该使用$(ProjectDir)/../..

更好的方法是,如果你能以这种方式组织你的项目:在根目录下创建一个解决方案,添加子目录中的项目,并在C ++包含路径中使用$(SolutionDir)/projectX/includes

更加优秀的方法是:将依赖的项目添加为引用到你的项目中。VS应该会自动添加它的目录和库到编译器和链接器设置中。


在Visual Studio中,是否有一个布尔标志来包含项目目录,还是我需要添加/I参数? - user3791372
1
也许有点凌乱,但我只是在项目属性中的包含目录中添加了$(ProjectDir)。 - user3791372

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接