不了解编译器如何搜索包含

Not understanding how the compiler searches for includes

所以,我正在尝试包含相邻文件中的 C++ header 文件,但我终究无法弄清楚如何让编译器找到它们。我所能做的就是将我所有的文件移动到同一个文件夹中,然后突然间它找到了它们。好吧,我收回那句话,我可以指定整个文件路径并且它有效,但我看到人们一直只使用

<sub1/filename.h>

当他们的源在 subdir/sub2/source.cpp 中并且 header 在 subdir/sub2/source.h 中时。我如何让这个奇迹发生?

两点:

1) 对于system header 文件,使用#include <sysheader.h> 语法比较合适。 但是对于您的 自己的 header,您应该代替我们 #include "myheader.h".

2) 使用编译开关“-I”让编译器在指定的文件夹中搜索您自己的 headers。