вторник, 15 мая 2012 г.

#include "" и INCLUDEPATH

В файлах #include нужно указывать относительно текущего файла. В таком случае includepath можно не указывать, компилятор производит автоматический поиск относительно компилируемого файла.

Например,
src
    - first
        - signal.h
        - first.cpp
    - second
        - signal.h
    - main
        - main.cpp

main.cpp
#include "../first/signal.h" // правильно
#include "../second/signal.h" // правильно

first.cpp
#include "signal.h" //правильно, равно first/signal.h, вне зависимости от includepath

Но если main.cpp будет такого вида:
#include "signal.h" // неверно, хотя и будет работать, если установлен INCLUDEPATH
и присутствует includepath, то выберется тот signal.h, папка которого находится раньше в includepath.

По мере разрастания проекта или выделения библиотеки позволяется для поиска хедеров в определенной директории установить INCLUDEPATH.

http://www.mingw.org/wiki/IncludePathHOWTO

Комментариев нет:

Отправить комментарий