在子目录中包含路径

Include path in subdirectory

本文关键字:路径 包含 子目录      更新时间:2023-10-16

我有一个Qt c++项目,其中文件被分成目录。

/
|
|-- dir1/
|   |
|   |-- toInclude1.h
|   |
|   |-- toInclude2.h
|
|-- dir2/
|   |
|   |-- toInclude1.h
|   |
|   |-- toInclude2.h
|
|-- main.cpp

我明白,当我想在文件main.cpp中包含例如toInclude1.h时,我只需要写

#include "dir1/toInclude1.h"

但是如果我想在toInclude2.h中包含相同的文件,我可以写

#include "dir1/toInclude1.h"

#include "toInclude1.h"

对我来说,这似乎是一个很好的歧义来源,当有更多的头文件具有相同的名称,但在不同的路径。

所以我的问题是,在我的情况下,应该使用后两个中的哪一个?

No。您真的不应该在头文件中使用#include。如果您这样做,那么将所有这些头文件放在单独的子-子-目录中,并让一个头文件包含所有这些头文件。在你的代码中使用这个顶级头文件