Как включить файл из другой папки? - PullRequest
16 голосов
/ 30 июля 2011

В моем текущем проекте я разделил файлы классов и файлы заголовков.Моя структура проекта в настоящее время выглядит следующим образом:

  • Проект

    • Источник
      • Источник
        • class1.cpp
        • class2.cpp
      • main.cpp
    • Заголовок
      • включает
        • class1.h
        • class2.h

Моя проблема в том, что я не знаю, как включить файлы заголовков в файлы классов.Я не могу связать с заголовками, которые не находятся на том же уровне или в дочерней папке?Или есть какой-то способ выйти из корня проекта и пройти мой путь вниз?Например:
#include "Project/Headers/include/class1.h" внутри файла class1.cpp

Ответы [ 3 ]

19 голосов
/ 30 июля 2011

Если вы хотите, чтобы class1.cpp включал class1.h, вы бы сделали что-то вроде этого

#include "../../Header/class1.h"

.. говорит оператору указать, что нужно перейти на 1 каталог, когда компилятор запрашивает файл.

16 голосов
/ 30 июля 2011

Вам необходимо указать путь включения <the directory containing Project> для вашего компилятора, чтобы компилятор мог найти включенные заголовки.Используя gcc, вы можете использовать опцию -I, а используя visual studio, вы можете использовать /I.

1 голос
/ 04 октября 2017

У меня была очень похожая проблема, когда мой компилятор не смог найти заголовок с проектом C ++ code :: blocks (такая же структура файла, как у OP).

Это сработало для меня:

#include "../include/class1.h"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...