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

Including files relative to project directory in c++

本文关键字:文件 项目 相对于 c++ 包含      更新时间:2023-10-16

我有一些头文件包含在项目源的子目录中。在我看来,必须在这些文件中做#include "../../Foo.h"看起来有点乱,当我更喜欢做#include "dir1/dir2/Foo.h"以更快地进行人类阅读和理解时-这是可能的吗,如果是这样,怎么做?

显然可以。(也应该)

告诉编译器添加"projectdir/../.."到它的包含路径。在Microsoft上,这将使用/I开关,在gcc上是-I

---- edit -----

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

如果你能这样组织它,那就更好了:在'root'目录下创建一个解决方案,在子目录中添加项目,并在c++包含路径上使用$(SolutionDir)/projectX/includes

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