2010-11-12 180 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 /編譯器。

相關問題