2010-11-12 177 views
0

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

所以在py3k/Python/ast.c它确实是#include "Python.h"。但Python.h是在py3k/Include/Python.h

这是一些常见的,我从来没有见过,没有在任何真正的大型C项目工作?我怎么知道,至少我的IDE,看看py3k/Include

更新
我想出如何告诉我的IDE,包括他们,这只是我的愚蠢和拼写错误。但我更感兴趣的是为什么""的作品。这不是""<>之间的区别吗?

+1

我们需要知道您使用的是什么IDE。 – nathan 2010-11-12 20:03:43

+1

任何特定的IDE,或者我们应该猜测? – 2010-11-12 20:04:03

+0

对于大多数IDE,在Project settings对话框中有一些include目录设置,你可以列出你的py3k/Include目录。如果不知道您正在寻找哪个IDE,则很难说出精确的设置。 – Himanshu 2010-11-12 20:07:36

回答

5

两个#include <header>#include "header"看在“实现定义的地方”,即它取决于你所使用的编译器及其设置。对于#include <h>,它通常是一些标准的系统包含目录以及编译器另外配置的任何配置。
两个版本之间的区别是,如果不支持或不为#include "header"搜索,它将被重新处理“如果它读#include <header>(C99,§6.10.2)。

+0

正是我想知道的。 – Falmarri 2010-11-12 21:05:27

5

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

相关问题