2011-01-15 7 views
8

В настоящее время я пытаюсь скомпилировать простую программу, которая включает в себя два файла заголовка. Я вижу их в Обозревателе решений, где я включил их через «include existing files». Однако, когда я запускаю свою программу, она получает следующую ошибку. Неустранимая ошибка C1083: Не удается открыть файл include: FileWrite.h: Нет такого файла или каталога. Проблема заключается в том, что я вижу файл, включенный в папке заголовка и в коде я написал:Как включить заголовочные файлы в Visual Studio 2008?

#include "FileWrite.h" 

, а затем остальную часть кода программы. Есть ли что-то еще для того, чтобы компилятор мог видеть файл заголовка и связать его с файлом .cpp, который я пытаюсь скомпилировать?

ответ

1

При включении файлов компилятор сначала ищет в текущем каталоге (каталог, который содержит исходный файл .cpp), то он выглядит в дополнительных каталогах include. Если FileWrite.h не находится в том же каталоге, что и ваш исходный файл, проверьте дополнительные включенные каталоги.

на странице свойств взгляда проекта на дополнительном включают каталоги и посмотреть, если они включают в себя папку, в которой FileWrite.h находится.

10

Есть два способа сделать это.

1) Только для текущего проекта

Select your project -> properties -> C/C++ -> General -> Additional Include Directories - 
Include your header file directory. 

2) Для всех проектов

Tools -> Options -> VC++ Directories -> Include files - Add the header file directory. 

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

+0

+1 для примечания об зависимостях –

15

Если вы пишете в своем коде что-то вроде #include "FileWrite.h", вам нужно убедиться, что компилятор может найти этот файл. Есть три варианта:

  • FileWrite.h должен либо находиться в том же каталоге, что и файл исходного кода (.cpp) или
  • Пути к этому файлу заголовок должен должен быть перечислен в свойствах проекта (в C/C++ -> Общие -> Additional Include Directories) или
  • Путь может быть установлен в вашем VisualStudio - добавьте его в инклюдника в Tools-> Options-> Проекты и> Solutions-VC++ Directories

Какую из этих оболочек опций использовать, зависит от того, откуда этот исходный заголовок возникает из этого проекта (1-й вариант) или какого-либо другого проекта (любой из двух других параметров).

+0

+1 для * Путь к этому файлу заголовка должен быть указан в свойствах проекта (в C/C++ -> Общие -> Дополнительные каталоги включений) * Настолько потрясающе! –

1

Вы сказали, что файл находится в папке «заголовки». Это может означать заголовок фильтр или фактический каталог заголовков в файловой системе. При включении файла из вашего собственного проекта вам нужно указать путь из файла, в который вы входите. Так что, если у вас что-то вроде так:

src/main.cpp 
include/my_object.h 

Вы бы использовать #include "../include/my_object.h" в main.cpp.

Это для справочников.Папки, которые вы видите в своем проекте, называются фильтрами и не имеют абсолютно никакого отношения к структуре каталогов вашего проекта, если вы его не заставляете. Вы должны обратить внимание на то, как выглядит структура в проводнике Windows, чтобы выяснить, какой путь использовать в объявлении include.

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