Включая файлы в C ++ - PullRequest
       18

Включая файлы в C ++

0 голосов
/ 05 ноября 2011

Я пытаюсь включить мой заголовок класса в основную и мою реализацию класса. Странно, что main находит заголовочный файл отлично, но с реализацией класса я получаю "нет такого файла или каталога". Почему это происходит? Я имею в виду, по каким возможным причинам один файл в моем проекте может найти файл заголовка идеально, но другой файл в том же проекте не может найти тот же идентичный файл заголовка.

Я использую CodeBlocks 10.05

Спасибо

Ответы [ 2 ]

1 голос
/ 05 ноября 2011

При компиляции реализации класса список путей, по которым компилятор ищет заголовки, должен отличаться.

Реализация класса и основные файлы находятся в одном каталоге? Если нет, то проблема может заключаться в том, что на большинстве компиляторов первым искомым путем является каталог, содержащий компилируемый файл *, а заголовок находится в том же файле, что и основной файл, но не в файле реализации класса.

Я не знаю, предлагает ли это ваш компилятор, но у некоторых есть подробный режим, в котором будут перечислены пути поиска заголовков. Если мой вышеупомянутый комментарий не поможет, то, возможно, это поможет.

  • Предполагается, что вы включаете файл, используя кавычки. Единственная разница между использованием кавычек и угловых скобок в ваших включениях заключается в том, что использование кавычек означает, что в каталоге, содержащем файл .cpp, выполняется поиск заголовков перед всеми другими путями, которые были перечислены (в командной строке, в переменных окружения, в косвенном система включает пути).
0 голосов
/ 05 ноября 2011

Убедитесь, что ваши каталоги настроены правильно, и пока реализация включена в проект, она должна правильно компилироваться.Также, как сказал Фред Ларсон, убедитесь, что вы заключили в файл «кавычки», а не угловые скобки, в противном случае он смотрит в стандартные каталоги, где не найдет ваш файл.

...