Не удается открыть файл включение
Детали системы:
Windows 10
Visual Studio Community 2017 v.15.2 (26430.6)
— Установленная разработка рабочего стола с C ++ (Снимок экрана: Список установки )
Шаг 1: Я написал знаменитую программу Hello World на C ++.
Шаг 2: Я нажал на Построить> Построить решение.
Проблема: ‘Stdio.h’: Данный файл или каталог отсутствует. Полная ошибка:
Детали по устранению неполадок / Вещи, которые я пробовал:
-
Свойства конфигурации> Каталоги VC ++
Include Directories $(VC_IncludePath);$(WindowsSDK_IncludePath);
Код в stdafx.cpp файл:
Код в stdafx.h файл:
Симптомы
Дополнительные причины
Вы установили пакет SDK или библиотеку стороннего производителя, но после установки пакета SDK или библиотеки не открывали новое окно командной строки разработчика. Если пакет SDK или библиотека добавляет файлы в путь поиска включаемых файлов, может потребоваться открыть новое окно командной строки разработчика, чтобы получить эти изменения переменных среды.
Файл использует управляемый код, но параметр /clr компилятора не указан. Дополнительные сведения см. в разделе /clr (компиляция среды CLR).
Файл компилируется с использованием другого /analyze параметра компилятора, чем используется для предварительной компиляции заголовков. При предварительной компиляции заголовков для проекта все должны использовать одни и те же /analyze Параметры. дополнительные сведения см. в разделе /analyze (Code Analysis).
файл или каталог был создан подсистема Windows для Linux, учитывается регистр в каждом каталоге, и указанный регистр пути или файла не соответствует регистру пути или файла на диске.
Файл, каталог или диск доступен только для чтения.
Visual Studio или средства командной строки не имеют достаточных разрешений для чтения файла или каталога. это может произойти, например, когда файлы проекта имеют разные права владения, чем процесс, выполняемый Visual Studio или программ командной строки. иногда эту ошибку можно устранить, запустив Visual Studio или командную строку разработчика от имени администратора.
Недостаточно дескрипторов файлов. Закройте часть приложений и повторите компиляцию. Эта ситуация маловероятна в обычных условиях. Однако она может возникать при построении крупных проектов на компьютере с ограниченной физической памятью.
Файл не включен в путь поиска включаемых файлов
Это указывает компилятору искать файл в том же каталоге, который содержит исходный файл, а затем искать в других местах, заданных средой сборки. Если кавычки содержат абсолютный путь, компилятор выполняет поиск файла только в этом расположении. Если кавычки содержат относительный путь, компилятор выполняет поиск файла в каталоге относительно исходного каталога.
Если имя заключено в угловые скобки,
Если включаемые файлы находятся в другом каталоге относительно исходного каталога и в директивах Include используется относительный путь, то вместо угловых скобок следует использовать двойные кавычки. Например, если файл myheader.h заголовка находится в подкаталоге именованных заголовков проекта, в этом примере не удается найти файл и вызывается C1083:
но этот пример работает:
Указано неверное имя файла
При вводе имени файла допущена ошибка. Например, примененная к объекту директива
может не найти файл, который вы хотели. Большинство файлов заголовков стандартной библиотеки C++ не имеют расширения h. . Чтобы устранить эту проблему, убедитесь, что указано правильное имя файла, как в следующем примере:
Пример
В следующем примере создается ошибка C1083, если файл "test.h" заголовка не существует в исходном каталоге или в пути поиска include.
Сведения о том, как создавать проекты C/C++ в интегрированной среде разработки или в командной строке, а также сведения о настройке переменных среды см. в разделе проекты и сборки систем.
В этой статье содержится решение проблемы, из-за которую при открытии exe-файлов будут допущены ошибки.
Применимо к: Windows Server 2012 R2, Windows 10 — все выпуски
Исходный номер КБ: 555067
Эта статья была написана Ювалем Синаем, MVP Майкрософт.
Причина
Поврежденные параметры реестра или какой-либо сторонний продукт (или вирус) могут изменить конфигурацию по умолчанию для запуска файлов EXE. Это может привести к сбойной операции при попытке запуска файлов EXE.
Другие решения
Просто включите windows.h вместо stdfax или создайте чистый проект без шаблона.
Есть два решения для этого.
Решение номер один:
1. Воссоздать проект. При создании проекта убедитесь, что предварительно скомпилированный заголовок проверен (Настройки приложения … *** Не проверять пустой проект)
Решение номер два:
1. Создайте stdafx.h и stdafx.cpp в своем проекте
2 Щелкните правой кнопкой мыши по проекту -> свойства -> C / C ++ -> предварительно скомпилированные заголовки
3. выберите предварительно скомпилированный заголовок для создания (/ Yc)
4. Восстановите решение
Напишите мне, если у вас возникнут проблемы.
Вы можете решить эту проблему, добавив «$ (ProjectDir)» (или там, где находится stdafx.h) в список каталогов в разделе «Проект» — «Свойства» -> «Свойства конфигурации» -> «C / C ++ ->« Общие »->« Дополнительные каталоги включения ».
Просто пробежался по учебному коду Visual Studio и столкнулся с похожей проблемой.
Предкомпилированные заголовки еще не скомпилированы
Если проект настроен для использования предварительно скомпилированных заголовков, необходимо создать соответствующие .pch файлы, чтобы можно было скомпилировать файлы, использующие содержимое заголовка. например, pch.cpp файл ( stdafx.cpp в Visual Studio 2017 и более ранних версий) автоматически создается в каталоге проекта для новых проектов. Сначала необходимо скомпилировать этот файл, чтобы создать предкомпилированные файлы заголовков. В типичном проекте процесса сборки это выполняется автоматически. Дополнительные сведения см. в разделе Создание предкомпилированных файлов заголовков.
Решение
В меню Пуск выберите пункт Выполнить.
Введите "command.com" , а затем нажмите Ввод. (Открывается окно DOS.)
Введите следующие строки команд:
Введите копию "regedit.exe regedit.com" и нажмите кнопку Ввод.
Введите кнопку "regedit.com" и нажмите кнопку Ввод.
Перейдите к клавише и выберите ее:
В правой области дважды щелкните значение (по умолчанию).
Удалите текущие данные о значении и введите:
Совет. Введите символы: quote-percent-one-quote-space-percent-asterisk.
Закрыть утилиту Regedit.
Если вы используете Windows XP и включаете функцию "Восстановление системы", необходимо отключить "Восстановление системы" в режиме Сейф, прежде чем использовать инструкции выше.
Community Отказ от контента решений
Корпорация Майкрософт и/или соответствующие поставщики не делают представлений о пригодности, надежности или точности сведений и связанных с ними графических данных, содержащихся в этой записи. Вся такая информация и связанная графика предоставляются "как есть" без какой-либо гарантии. Корпорация Майкрософт и/или соответствующие поставщики тем самым отключили все гарантии и условия в отношении этой информации и связанной графики, включая все подразумеваемые гарантии и условия торговой доступности, пригодность для определенной цели, рабочий труд, название и неущемление. Вы соглашаетесь, что ни в каких событиях корпорация Майкрософт и/или ее поставщики не несут ответственности за любые прямые, косвенные, штрафные, случайные, специальные, сопутствующие повреждения или любые повреждения, включая без ограничений убытки за потерю использования, данных или прибыли, возникающие из-за использования или невозможности использования сведений и связанных с ними графических элементов, содержащихся в этом деле, независимо от того, были ли они связаны с контрактом, тортом, халатностью, строгой ответственностью или иным образом, даже если корпорации Майкрософт или любому из ее поставщиков было рекомендовано о возможности ущерба.
Когда я скомпилировал эту программу (из C ++ Programming Language 4th edition):
Это дало мне эти ошибки:
Способ 3. Убедитесь, что файл не был перемещен или удален
Данная ошибка может возникнуть также в случае, если файл был перемещен или удален. Перейдите в папку, содержащую необходимый файл, и убедитесь, что он находится там.
Проблемы с библиотекой сторонних производителей и vcpkg
если вы видите эту ошибку при попытке настроить библиотеку стороннего производителя в рамках сборки, рассмотрите возможность использования vcpkg, диспетчера пакетов C++ для установки и сборки библиотеки. vcpkg поддерживает большой и растущей список библиотек сторонних производителейи задает все свойства конфигурации и зависимости, необходимые для успешной сборки в рамках проекта.
Способ 6. Проверьте, не блокирует ли файл антивирусное программное обеспечение
Чтобы проверить, не блокирует ли файл ваша антивирусная программа, временно отключите ее и попытайтесь открыть файл. Если потребовалось временно отключить антивирусное программное обеспечение, включите его сразу же после выполнения необходимого действия. Если во время данного отключения компьютер подключен к Интернету, он уязвим для атак.
Важно! Отключение антивирусного программного обеспечения или изменение его настроек может сделать ваш компьютер уязвимым для вирусов, мошенничества и других вредоносных действий. Корпорация Майкрософт не рекомендует отключать антивирусное программное обеспечение или изменять его настройки. Если потребовалось временно отключить антивирусное программное обеспечение, включите его сразу же после выполнения необходимого действия. Применяя этот метод обхода проблемы, вы действуете на собственный риск. Сведения о временном отключении антивирусного программного обеспечения см. в статье Отключение антивирусного программного обеспечения.
Другие решения
Столкнулся с проблемой пропавших без вести stdlib.h а также stdio.h (а может и больше) после установки VS2017 Community на новый компьютер и переноса решения с VS2013 на VS2017.
Сейчас мои проекты строятся без проблем.
Обратите внимание, что вам может потребоваться сделать проект стартовым проектом для ретаргетинга.
Есть три способа решить эту проблему.
Переустановите Visual Studio
Это также сработало для меня, потому что я понял, что, возможно, что-то не так с моим Windows SDK. Я использовал Windows 10, но с Windows SDK 8.1. У вас может быть и эта проблема.
шаги: Откройте установщик Visual Studio> щелкните трехстрочную строку меню> Удалить> Перезагрузите компьютер> Откройте установщик Visual Studio> Установите то, что вам нужно, но убедитесь, что вы устанавливаете только последнюю версию Windows SDK 10, а не несколько или 8.1.
У меня была похожая проблема после обновления моего VS2017. Проект построен хорошо; но много «ошибок», когда код был поднят в редакторе. Даже попробовал переустановить VS. Я смог решить эту проблему, установив для параметра «Игнорировать стандартные пути включения» значение «Да». Попытка построить решение с большим количеством ошибок. Вернулся и установил опцию на Нет. После восстановления моя проблема ушла.
Если вы не хотите использовать Windows SDK для Windows 10 (например, вы можете работать над проектом с открытым исходным кодом, решение которого не принимается вами), вы можете решить эту проблему в проекте Windows SDK 8.1 с помощью навигационный Tools -> Get Tools and Features. -> Individual Compontents tab и установка отдельных компонентов «Windows 8.1 SDK» (в составе SDK, библиотек и сред) и «Windows Universal CRT SDK» (в разделе «Компиляторы», средства сборки и среды выполнения):
У меня была такая же проблема при создании VS 2013 Project с помощью Visual Studio 2017 IDE.
Решением было установить правильный «Platformtoolset v120 (Visual Studio 2013)». Для этого должен быть установлен Windows SDK 8.1.
Если вы хотите использовать Platformtoolset v141 (Visual Studio 2017), необходимо установить Windows SDK 10.
Platformtoolset может быть выбран в диалоге свойств проекта: General -> Platformtoolset
Примечание. Необходимо обладать правами администратора или быть членом группы "Администраторы домена", если компьютер входит в домен.
Разрешения — это правила, связанные с файлами, которые определяют, может ли пользователь получать доступ к файлу и какие действия с ним он может выполнять. Чтобы проверить разрешение на файл или папку, выполните указанные ниже действия.
Щелкните файл или папку правой кнопкой мыши и выберите пункт Свойства.
Перейдите на вкладку Безопасность.
Дополнительные сведения о разрешениях см. в статье Что такое разрешения?.
Включена неправильная версия имени файла
Решение
Возникла та же проблема с переносом проекта с VS2013 на VS2017,
Исправлено: измените «Свойства-> Общие-> Версия Windows SDK» на 10
Причина
Подобная проблема может возникать при выполнении на компьютере любого из следующих условий.
Нет разрешения на доступ к файлу или его расположению.
Файл находится в недоступном в настоящее время расположении, например в сетевой папке или на внешнем диске, не подключенном к компьютеру в настоящий момент.
Файл был перемещен или удален.
Файл или ярлык поврежден.
Windows может блокировать файл.
Антивирусное программное обеспечение может блокировать файл.
Возможно, файл заблокирован или используется
Если для изменения или доступа к файлу используется другая программа, файл может быть заблокирован. Попробуйте закрыть файл в другой программе. иногда другая программа может быть Visual Studio сама по себе при использовании параметров параллельной компиляции. Если отключить параметр параллельной сборки, то эта ошибка исчезнет, а это проблема. Эта проблема также может быть вызвана другими системами параллельной сборки. Будьте внимательны при задании зависимостей файлов и проектов, чтобы порядок сборки был правильным. В некоторых случаях рекомендуется создать промежуточный проект для принудительного создания последовательности зависимостей для общего файла, который может быть создан несколькими проектами. Иногда антивирусные программы временно блокируют недавно измененные файлы для проверки. Если возможно, рассмотрите возможность исключения каталогов сборки проекта из антивирусного сканера.
Способ 4. Создайте ярлык повторно, чтобы проверить наличие повреждений
Данная ошибка может возникать также в случае, если ярлык или файл другого типа был поврежден. Проверить ярлыки на наличие повреждений можно посредством повторного создания ярлыка. Для этого перейдите к разделу Создание или удаление ярлыка.
Если повреждено приложение или файл другого типа, для решения проблемы может потребоваться восстановить приложение.
Решение
Вы должны правильно понимать, что такое stdafx.h, или предварительно скомпилированный заголовок. Другие вопросы или Википедия ответят на это. Во многих случаях можно избежать предварительно скомпилированного заголовка, особенно если ваш проект небольшой и с небольшими зависимостями. В вашем случае, как вы, вероятно, начали с шаблона проекта, он был использован для включения Windows.h только для _TCHAR макро.
Затем предварительно скомпилированный заголовок обычно является файлом проекта в мире Visual Studio, поэтому:
Во-вторых: нежелательно включать предварительно скомпилированный заголовок в ваши собственные заголовки, чтобы не загромождать пространство имен другого источника, который может использовать ваш код в качестве библиотеки, поэтому полностью удалите его включение в vector.h ,
Файл находится в проекте, но не в пути поиска включаемых файлов
Чтобы устранить эту проблему, исправьте путь, используемый компилятором для поиска включаемого или импортируемого файла. В новом проекте используются пути поиска include по умолчанию. Может потребоваться изменить путь поиска include, чтобы добавить каталог для проекта. При компиляции в командной строке добавьте путь к переменной среды include или /I параметр компилятора, чтобы указать путь к файлу.
чтобы задать путь к каталогу включения в Visual Studio, откройте диалоговое окно страницы свойств проекта. выберите VC++ каталоги в разделе свойства конфигурации в левой области, а затем измените свойство включаемые каталоги . дополнительные сведения о каталогах для отдельных пользователей и проектов, поиск которых выполняется компилятором в Visual Studio, см. в разделе страница свойств VC++ directories. Дополнительные сведения о параметре компилятора см. в /I разделе /I (дополнительные каталоги включаемых данных).
Не задана среда командной строки INCLUDE или LIB
Если компилятор вызывается из командной строки, для указания путей поиска часто используются переменные среды. Если путь поиска, описанный в переменной среды include или lib , задан неправильно, может быть сформирована ошибка C1083. Мы настоятельно рекомендуем использовать ярлык командной строки разработчика, чтобы задать базовую среду для сборок с командной строкой. Дополнительные сведения см. в разделе сборка C/C++ в командной строке. Дополнительные сведения об использовании переменных среды см. в разделе инструкции. Использование переменных среды в сборке.
Способ 2. Проверьте расположение файла
Данная ошибка может возникать, если ярлык или установленная программа пытаются получить доступ к расположению, недоступному в настоящее время (например, к сетевой папке или съемному диску). Проверьте путь к файлу, к которому Windows не может получить доступ, и убедитесь, что расположение доступно. (Снимок экрана для этого этапа приведен ниже.)
Дополнительная информация
Дополнительные сведения об ошибках при доступе к файлами или папкам в Windows см. в статье "Отказано в доступе" и другие ошибки при попытке доступа к файлам и папкам Windows или при работе с ними.
Компилятор создает ошибку C1083, когда не удается найти требуемый файл. Эта ошибка имеет несколько возможных причин. Наиболее распространенными причинами являются неверный путь поиска include или отсутствующие или неправильно именованные файлы заголовков, но другие типы файлов и проблемы могут также вызвать C1083. Ниже приведены некоторые распространенные причины, по которым компилятор создает эту ошибку.
Способ 5. Разблокируйте файл
В некоторых случаях Windows может блокировать файл. Просмотрите свойства файла — они могут содержать следующее примечание: Этот файл получен с другого компьютера и, возможно, был заблокирован с целью защиты компьютера. Чтобы проверить это и при необходимости разблокировать файл, сделайте следующее.
Щелкните заблокированный файл правой кнопкой мыши и выберите пункт Свойства.
На вкладке Общие нажмите кнопку Разблокировать, если она доступна.
Читайте также: