包括来自其他目录的C头文件

包括来自其他目录的C头文件,c,header,include,C,Header,Include,我的理解是,通过执行#include它会在系统包含目录中查找,而#include“header.h”它会在本地目录中查找。但我只是在看python源代码,它使用“header.h”方法在同级目录中定义头 因此在py3k/Python/ast.c中,它确实包含了“Python.h”。但是Python.h位于py3k/Include/Python.h 这是我从未见过的常见现象吗?我没有参与过任何真正的大型C项目?我如何告诉(至少是我的IDE)查看py3k/Include 更新 我想出了如何告诉我的I

我的理解是,通过执行
#include
它会在系统包含目录中查找,而
#include“header.h”
它会在本地目录中查找。但我只是在看python源代码,它使用
“header.h”
方法在同级目录中定义头

因此在
py3k/Python/ast.c
中,它确实包含了“Python.h”。但是
Python.h
位于
py3k/Include/Python.h

这是我从未见过的常见现象吗?我没有参与过任何真正的大型C项目?我如何告诉(至少是我的IDE)查看
py3k/Include

更新

我想出了如何告诉我的IDE包含它们,这只是我的愚蠢和拼写错误。但我更感兴趣的是为什么
有效。这不是
之间的区别吗?

您需要以某种方式告诉编译器要在哪些目录中搜索——对于GCC,这意味着使用
-I
标志。查找IDE/编译器的组合。

既包括
\include
又包括
\include“header”
查找“实现定义的位置”,即它取决于您使用的编译器及其设置。对于
#include
,通常是一些标准的系统include目录和任何您配置编译器以查看的内容。

这两个版本之间的区别在于,如果搜索
#include“header”
不受支持或失败,它将被重新处理“就像它读取
#include
”(C99,§6.10.2)。

我们需要知道您使用的IDE。任何特定的IDE,或者我们只是猜测一下?对于大多数IDE,在“项目设置”对话框中有一些包含目录设置,您可以在其中列出您的py3k/include目录。如果不知道您要找的是哪一个IDE,就很难说出精确的设置。对不起,这是Kdevelop,但我想我更感兴趣的是它是如何工作的/为什么工作的,而不是让我的IDE看到它们。这正是我想知道的。