Я новичок в использовании кода Visual Studio, и я понятия не имею, что я делаю.
Я искал (возможно, не достаточно), но я не могу найти просто простое объяснение для кого-то, как я, о том, как настроить c_cpp_properties.json
файл, к которому меня перенаправляют всякий раз, когда я нажимаю на желтую лампочку рядом с линией, которая подчеркнута зеленым загогулином.
Я просто хочу знать, что положить в .json
заставить IntelliSense работать правильно
От:
https://code.visualstudio.com/docs/languages/cpp
Ниже вы можете видеть, что путь включения MinGW C ++ был добавлен в browse.path для Windows:
{
"name": "Win32",
"includePath": [
"${workspaceRoot}"],
"defines": [
"_DEBUG",
"UNICODE"],
"intelliSenseMode": "msvc-x64",
"browse": {
"path": [
"${workspaceRoot}",
"C:\\MinGW\\lib\\gcc\\mingw32\\6.3.0\\include\\c++"],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""}
}
Надеюсь, это поможет! 🙂
Из официальной документации расширения C / C ++:
Если при открытии папки в VS Code вы видите следующее сообщение, это означает, что движку C ++ IntelliSense требуется дополнительная информация о путях, в которых находятся ваши включаемые файлы.
Пути включения определены в "includePath"
установка в файле с именем c_cpp_properties.json находится в каталоге .vscode в открытой папке.
Вы можете создать или открыть этот файл, используя "C/Cpp: Edit Configurations"
Команда в палитре команд или выбрав "Edit "includePath" setting"
в меню лампочки (см. скриншот ниже). Самый быстрый способ найти лампочку — это прокрутить верхнюю часть исходного файла и щелкнуть на любой зеленой загадке, которая появляется под оператором #include.
Когда папка открыта, расширение пытается найти системные заголовки на основе вашей операционной системы, но не знает ни о каких других библиотеках, от которых зависит ваш проект. Вы можете навести курсор на зеленые загогулины или открыть окно «Проблемы», чтобы понять, какие заголовки механизм IntelliSense не может открыть — иногда это не могут быть найдены зависимые заголовки.
Вы можете указать оставшиеся пути, используя один из методов, описанных ниже.
Расширение может получить информацию для "includePath"
а также "defines"
из файла compile_commands.json, который может автоматически генерироваться многими системами сборки, такими как CMake и Ninja. Найдите раздел, в котором определена текущая конфигурация (по умолчанию для каждой ОС существует одна конфигурация, например, «Win32 или« Mac »), и установите "compileCommands"
недвижимость в c_cpp_properties.json полный путь к файлу compile_commands.json, и расширение будет использовать его вместо "includes"
а также "defines"
свойства для IntelliSense.
Первое, что нужно попробовать, — это использовать подсказки пути лампочки для автоматического разрешения включаемых путей. Когда вы открываете папку, расширение будет рекурсивно поиск возможных путей включения, соответствующих заголовочным файлам, которые использует ваш код, на основе путей, заданных "browse.path"
установка в c_cpp_properties.json. Нажмите на зеленые загогулины под заявлениями #include, и вы увидите лампочку, предлагающую пути, которые позволят IntelliSense разрешить включенный файл.
Если вы не видите подсказки пути в лампочке, попробуйте добавить корневую папку, в которой заголовки, вероятно, расположены в "browse.path"
установка в c_cpp_properties.json. Это позволяет расширению рекурсивно искать в этих папках и предлагать больше предложений в лампочке в процессе поиска.
Если ни один из приведенных выше способов полностью не разрешает пути, вы можете вручную указать пути к заголовкам, от которых зависит ваш проект, в c_cpp_properties.json файл. Найдите раздел, в котором определена ваша текущая конфигурация (по умолчанию для каждой ОС существует одна конфигурация, например, «Win32 или« Mac »), и добавьте ваши пути в "includePath"
установка и определяет в "defines"
установка. Например, на следующем снимке экрана показан фрагмент файла с указанием пути для конфигурации Mac.
Кроме того, для MinGW, как объясняет документация расширения ты можешь спросить GCC / G ++ перечислить свои собственные включаемые файлы:
gcc -v -E -x c++ nul
Есть два способа проверить правильность разрешения путей включения:
Это указывает на то, что в движке IntelliSense разрешены пути включения, поэтому вы можете начать пользоваться полным IntelliSense для своего кода C или C ++ для текущего модуля перевода. Обратите внимание, что вы все равно можете видеть ошибки в других файлах, если они принадлежат другому модулю перевода, для которого требуется настроить дополнительные пути включения.