Я пытаюсь продолжить работу над проектом C ++, который начал кто-то другой.Чтобы открыть проект, мне пришлось установить рабочую нагрузку C / C ++;Я сделал это и уже перезапустил мой компьютер.
Проект изначально был нацелен на версию Windows SDK, отличную от той, которая установлена на моем компьютере.Это привело к тому, что Visual Studio IntelliSense сказал мне «Невозможно открыть исходный файл» для заголовочных файлов SDK, например stdio.h
или string.h
.
Я перешел к настройкам проекта> Каталоги VC ++> Включить каталоги> Редактировать иувидел, что переменные расширились в неправильные пути.Таким образом, я приступил к перенаправлению проекта на версию Windows SDK, которая в настоящее время установлена на моем ПК (10.0.17763.0).
Теперь, если я проверяю «Включить каталоги», я вижу, что «Наследуется от родительских или проектных значений по умолчанию », унаследованное значение равно
$(VC_IncludePath)
$(WindowsSDK_IncludePath)
, и это расширяется до
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\include
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\atlmfc\include
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Auxiliary\VS\include
C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\ucrt
C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\um
C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\shared
C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\winrt
C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\cppwinrt
C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\Include\um
Я проверил, что все эти каталоги существуют на моем компьютере.
Однако VS постоянно говорит мне, что не может открыть исходные файлы, даже после очистки и перестройки всего решения.Кажется, что проект компилируется, но код весь волнистый.
Я включаю:
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <float.h>
#include <string.h>
#include <stdarg.h>
#include <limits.h>
#include <locale.h>
#include "svm.h"
Только stdarg.h
, limits.h
(оба из C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\include\
) и svm.h
(в проекте) работа.Все другие включения имеют эту ошибку;все они приходят из каталога C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\ucrt
, я могу найти их все в этом каталоге.
Я заметил, что когда я набираю #include <
и позволяю IntelliSense предлагать включить, он также не предлагает те из любого изC:\Program Files (x86)\Windows Kits\10\
подкаталоги.Эти заголовочные файлы перечислены в узле проекта «Внешние зависимости».
StackOverflow содержит множество вопросов об этой ошибке, но обычно о сторонних библиотеках или файлах проекта, а также ответы на них.Предлагаем проверить Включить каталоги.Я сделал это, и они кажутся полными, если я могу доверять расширенному значению, но, видимо, что-то все еще не так.
Я в основном новичок в C ++ и всей "магии заголовков", так что это может быть связано с проектом.Я обнаружил, что проект содержит некоторый файл "stdafx.h" (который я читал для предварительно скомпилированных заголовков), однако в настройках проекта говорится, что не использует предварительно скомпилированные заголовки, и действительно я не вижу ни одного файла *.pch
либо.