C1083: не удается открыть включаемый файл: math.h: нет такого файла или каталога

У меня куча этих ошибок, и я зашел в тупик.

Нашел много ответов в Google, но, к сожалению, ни один из них не работает

Я использую Visual Studio 2012.

Все файлы, которые, по его словам, не могут быть найдены, находятся на моем компьютере в этой папке.

C:\Program Files\Microsoft Visual Studio 11.0\VC\include

Даже когда я щелкаю правой кнопкой мыши по заявлению включения и нажимаю «Открыть документ», я попадаю в документ, так что он четко там и может быть виден.

Я попытался добавить каталог в поле «Дополнительные каталоги» в параметрах, но не решил.

Если я использую оператор include с полным путем, например:

#include <C:\Program Files\Microsoft Visual Studio 11.0\VC\include\math.h>

Тогда это работает, но если в файле math.h есть какие-либо инструкции включения, мне также нужно добавить к ним путь и так далее.

Любая идея, что происходит, и что еще я могу попробовать?

РЕДАКТИРОВАТЬ: собираюсь попробовать создать новый проект с нуля и посмотреть, поможет ли это. Возможно, я коснулся настроек, которых мне не следовало


person Mr Dog    schedule 12.06.2014    source источник
comment
«Я использую Visual Studio 2012». _1 _?!?!?   -  person πάντα ῥεῖ    schedule 12.06.2014
comment
@ πάνταῥεῖ VS v11 есть VS 2012. VS v12 на самом деле VS 2013.   -  person Simple    schedule 12.06.2014


Ответы (4)


Щелкните свой проект правой кнопкой мыши, перейдите в «Свойства», затем перейдите в «Каталоги VC ++» и откройте редактор для «Включить каталоги». Должен быть установлен флажок «Наследовать от родительских или проектных значений по умолчанию». Вы увидите, что Visual Studio включает несколько предопределенных каталогов.

Если флажок уже установлен и Visual Studio не находит каталоги, попробуйте добавить эти каталоги самостоятельно:

$(VCInstallDir)include
$(VCInstallDir)atlmfc\include
$(WindowsSDK_IncludePath)
person Simple    schedule 12.06.2014
comment
Спасибо за ответ. Поле отмечено галочкой, и 3 указанных вами каталога перечислены в разделе «Унаследованные значения:» - person Mr Dog; 12.06.2014
comment
@Rio, если вы нажмете кнопку Macros в этом диалоговом окне, до чего расширится макрос $(VCInstallDir)? - person Simple; 12.06.2014
comment
Он указывает на C: \ Program Files \ Microsoft Visual Studio 11.0 \ - person Mr Dog; 12.06.2014
comment
@Rio mine указывает на C: \ Program Files \ Microsoft Visual Studio 11.0 \ VC \. Попробуйте сами добавить $(VCInstallDir)vc\include и $(VCInstallDir)vc\atlmfc\include в качестве обходного пути. - person Simple; 12.06.2014
comment
Простите, окно вырезали. «ВК» тоже есть у меня. - person Mr Dog; 12.06.2014
comment
@Rio Я не могу думать ни о чем другом, что могло бы быть проблемой. : / - person Simple; 12.06.2014
comment
Спасибо @Simple за помощь. В итоге я удалил проект и воссоздал его с нуля, и он решил сам. Похоже, я просто пропустил настройку при настройке - person Mr Dog; 12.06.2014
comment
Это было невообразимо просто, и все же я, вероятно, никогда бы не понял этого самостоятельно. Видимо мне удалось отключить его в конфигурации x64, а не в Win32. Кто бы знал. Спасибо. - person dagronlund; 07.05.2015
comment
Я обнаружил, что файлы системных заголовков были перемещены для VS 2015, согласно следующему: social.msdn.microsoft.com/Forums/vstudio/en- США /. Вы должны указать C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt в качестве пути - по крайней мере, я их нашел там. Добавил это вручную, как указано выше, и смог перейти к новым ошибкам. По теме: stackoverflow.com/questions/31736361/ - person vapcguy; 10.03.2017

Следующее неверно во многих отношениях:

#include <C:\Program Files\Microsoft Visual Studio 11.0\VC\include\math.h>

\... начинает так называемую escape-последовательность, поэтому вы помещаете в строку специальные токены \P, \M, \V, \i и \m, но в отличие от, например, \n, который обозначает символ новой строки, они не существуют как допустимые escape-последовательности. Это можно исправить, последовательно используя косую черту:

#include <C:/Program Files/Microsoft Visual Studio 11.0/VC/include/math.h>

Однако math.h - стандартный заголовок. Для стандартных заголовков вы не пишете полный путь. Для нестандартных заголовков вы добавляете путь включения в настройку проекта и не записываете полный путь.

#include <math.h>

Тогда: Вы используете C ++, а не C. В эквивалентах C ++ для заголовков C обычно удаляется расширение .h и добавляется c впереди:

#include <cmath>
person Sebastian Mach    schedule 12.06.2014
comment
Я использую C ++, и, несмотря на то, что math.h является стандартным заголовком, его все еще не найти? - person Mr Dog; 12.06.2014
comment
@Rio: Если кто-то педантичен, то cmath - это стандарт C ++, а math.h только C. Вы пробовали это? - person Sebastian Mach; 12.06.2014
comment
Я просто попробовал, и это дает мне ту же ошибку. C1083 Не удается открыть включаемый файл: 'cmath': нет такого файла или каталога - person Mr Dog; 12.06.2014

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

Таким образом, вместо ‹dog.h>," dog.h "решил проблему" файл не найден ".

person Gürkan Çetin    schedule 09.08.2017

Это ошибка в Visual Studio, для которой Micosoft установила значение «Закрыто - не ошибка» см. Ссылку

https://developercommunity.visualstudio.com/content/problem/311530/win10-sdk-broken.html

Я поискал на своем компьютере файл math.h и нашел его в подпапке «Program Files \ Unity», т.е. Visual Studio не установила его. Кажется, в эти выходные у меня есть обратный мидас, все, к чему я прикасаюсь, превращается в дерьмо.

person AriesConnolly    schedule 19.04.2020