Что означает .. в #include "../somefile.h" - PullRequest
3 голосов
/ 30 марта 2010

Означает ли это поиск в предыдущей папке для somefile.h или в папке проекта для somefile.h?

Ответы [ 4 ]

14 голосов
/ 30 марта 2010

Это означает, что ищите somefile.h в родительской папке относительно исходного файла, в котором находится директива включения.

В * nix системах (вот откуда пришло это соглашение AFAIK):

.        manse the current directory.
..       means one level up from the current directory.

Например, если у вас следующая структура каталогов:

home
   |
   code
      | src
      | someOtherDirectory

Ваш исходный файл может быть в home/code/src, и у вас есть:

#include "../somefile.h"

в вашем исходном коде, тогда компилятор будет искать somefile.h в home/code/

3 голосов
/ 30 марта 2010

Это означает, что искать в родительском каталоге файл «somefile.h» относительно каталога, в котором находится файл, содержащий директиву.

2 голосов
/ 30 марта 2010

Это означает, что родительский каталог каталога, в котором находится исходный файл.

0 голосов
/ 30 марта 2010

Ну, если ваши исходные файлы в /src, то somefile.h должно быть выше src или /

...