Неустранимая ошибка C1083: Не удается открыть файл include: 'xyz.h': Нет такого файла или каталога?
Я использую visual studio 2005 для создания проекта. И у меня есть структура папок в проекте как: папка с кодом. эта папка содержит все файлы *.cxx.
Теперь я создал класс xyz в файле заголовка xyz.h. И определил каждую вещь в xyz.cxx, которая помещается в папку кода.
Но теперь, когда я пытаюсь скомпилировать его с визуальной студией, это вызывает у меня ошибку
"Неустранимая ошибка C1083: Не удается открыть файл include:" xyz.h ": нет такого файла или каталога". как исправить эту проблему.
Ответы
Ответ 1
Либо переместите файл xyz.h в другое место, чтобы препроцессор мог его найти, либо изменил оператор #include
, чтобы препроцессор нашел его там, где он уже есть.
Где препроцессор ищет включенные файлы, описывается здесь. Одно из решений заключается в том, чтобы поместить файл xyz.h в папку, где препроцессор собирается найти его, следуя этому шаблону поиска.
В качестве альтернативы вы можете изменить оператор #include, чтобы препроцессор мог его найти. Вы сообщите нам, что файл xyz.cxx находится в папке "code", но вы не сообщите нам, где вы поместили файл xyz.h. Скажем, ваша файловая структура выглядит так:
<some folder>\xyz.h
<some folder>\code\xyz.cxx
В этом случае оператор #include в xyz.cxx должен выглядеть примерно так.
#include "..\xyz.h"
С другой стороны, скажем, ваша файловая структура выглядит так:
<some folder>\include\xyz.h
<some folder>\code\xyz.cxx
В этом случае оператор #include в xyz.cxx должен выглядеть примерно так.
#include "..\include\xyz.h"
Обновление: С другой стороны, поскольку @In silico указывает на комментарии, если вы используете #include <xyz.h>
, вы должны, вероятно, изменить его на #include "xyz.h"
Ответ 2
Добавьте папку "code" в свойства проекта в Visual Studio
Project- > Properties- > Свойства конфигурации- > C/С++ → Дополнительные каталоги с добавлением
Ответ 3
Я столкнулся с этой ошибкой в другой ситуации, разместив разрешение для тех, кто прибыл через поиск: из Visual Studio я скопировал файл из одного проекта и вставил его в другой. Оказывается, что создает символическую ссылку, а не фактическую копию. Таким образом, проект не нашел файл в текущем рабочем каталоге, как ожидалось. Когда я сделал физическую копию вместо этого, в проводнике Windows неожиданно #include "myfile.h"
работал.
Ответ 4
Мне помог следующий подход.
Шаги:
1. Перейдите в соответствующий каталог, где отсутствует файл заголовка, который отсутствует. (В моем случае отсутствует /include/unicode/coll.h) и скопируйте папку, в которой находится файл заголовка. (Скопируйте до каталога include.)
2.Нажмите на свой проект в Обозревателе решений- > Свойства- > Свойства конфигурации- > Каталоги VС++- > Включить каталоги.
Вставьте скопированный путь здесь.
3.Это решило мою проблему. Надеюсь, это поможет!