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

时间:2010-11-12 20:02:24

标签: c header include

我的理解始终是通过执行#include <header.h>它在系统中查找包含目录,并且#include "header.h"它在本地目录中查找。但我只是查看python源代码,它使用"header.h"方法在兄弟目录中定义标头。

所以py3k/Python/ast.c #include "Python.h" Python.h。但是py3k/Include/Python.h位于py3k/Include

这是我从未见过的常见问题,还没有参与任何真正的大型C项目吗?至少我的IDE如何判断""

更新
我想出了如何告诉我的IDE包含它们,只是我是愚蠢和拼写错误。但我对""的工作原因更感兴趣。这是<>和{{1}}之间没有区别吗?

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:5)

#include <header>#include "header"都会查看“实现定义的位置”,即它取决于您使用的编译器及其设置。对于#include <h>,它通常是一些标准系统包括目录以及您配置编译器以进一步查看的任何内容 两个版本之间的区别在于,如果搜索#include "header"不受支持或失败,则会重新处理“,就像它读取#include <header>一样(C99,§6.10.2)。