2010-11-12 2 views
0

Мое понимание всегда заключалось в том, что, делая #include <header.h>, он смотрит в систему, включая каталоги, и что #include "header.h" он выглядит в местном каталоге. Но я просто смотрел исходный код python, и он использует метод "header.h" для определения заголовков в каталоге sibling.Включая файлы заголовков C из другого каталога

Так в py3k/Python/ast.c это #include "Python.h". Но Python.h находится в py3k/Include/Python.h

Это что-то общее, что я никогда не видел, не работая над каким-либо реальным крупным проектом C? Как узнать, по крайней мере, мою IDE, посмотреть в py3k/Include?

Update
Я понял, как сказать мой IDE, чтобы включить их, это был только я глуп и орфографическая ошибка. Но меня больше интересует, почему работает "". Разве это не отличается от "" и <>?

+1

Нам нужно знать, какую IDE вы используете. – nathan

+1

Любая конкретная IDE, или мы должны просто догадаться? –

+0

Для большинства IDE в диалоговом окне «Параметры проекта» есть некоторые настройки каталога, там вы можете указать каталог py3k/Include. Трудно сказать точную настройку, не зная, какую IDE вы ищете. – Himanshu

ответ

5

Оба #include <header> и #include "header" взгляда в «реализация определенных мест», т.е. она зависит от компилятора, который вы используете, и его настройку. Для #include <h> обычно это стандартные каталоги, включающие систему, и все, что вы настраиваете для компилятора, чтобы посмотреть дополнительно.
Разница между этими двумя версиями является то, что если поиск #include "header" не поддерживается или не удается, он будет переработано «как если бы он прочитал #include <header>» (C99, §6.10.2).

+0

Точно то, что я хотел знать. – Falmarri

5

Вам нужно как-то сообщить своему компилятору, какие каталоги искать в - для GCC это означает использование флага -I. Посмотрите на свою комбинацию IDE/компилятора.

Смежные вопросы