Изменить путь включения кода Visual Studio

Обновлено: 02.07.2024

Поддержка C/C++ для Visual Studio Code предоставляется сегодня в качестве предварительной версии нашей работы по обеспечению кроссплатформенной разработки на C и C++ с использованием VS Code в Windows, Linux и OS X. В этом предварительном выпуске основное внимание уделяется редактированию кода. и поддержка навигации по коду C и C++ везде, где работает VS Code, а также отладка в Linux (поддерживается 64-разрядная версия Ubuntu 14.04; другие версии Linux могут работать, но не поддерживаются) и OS X (см. Известные ограничения ниже).

Если вам просто нужен легкий инструмент для редактирования ваших файлов C++, VS Code поможет вам, где бы вы ни находились, но если вам нужны наилучшие возможности для ваших существующих проектов Visual C++ или отладки в Windows, мы рекомендуем вам использовать версию Visual Studio, например Visual Studio Community.

Поскольку мы все еще формируем возможности C++ в VS Code, сейчас самое подходящее время для предоставления отчетов об ошибках, запросов функций и отзывов, а также для тех из вас, кто использует Linux или OS X в качестве среды разработки, чтобы принять участие с командой Visual Studio.

Установка поддержки C++

Поддержка языка C++ является дополнительной установкой из Marketplace. Или просто установите его из VS Code, запустив Quick Open (kb(workbench.action.quickOpen)) и затем введя команду ext install cpptools.

В Linux официально поддерживается только 64-разрядная версия Ubuntu 14.04. Другие версии Linux могут работать, но они не проверены и не поддерживаются.

В OS X дополнительные шаги по установке необходимо выполнить вручную, чтобы включить отладку в OS X. См. раздел Ручная установка расширения C++ Debugger в файле README.

Код навигации

Функции навигации по исходному коду, предоставляемые расширением C/C++, являются мощными инструментами для понимания и навигации по кодовой базе. Эти функции основаны на тегах, хранящихся в автономной базе данных символов (в файлеBrowse.VC.db). При установленном расширении C/C++ эта база данных создается всякий раз, когда папка, содержащая файлы исходного кода C++, загружается в VS Code. Индикатор платформы (Win32 на рисунке ниже) становится красным и появляется рядом со значком пламени, пока анализатор тегов генерирует эту информацию.

Индикатор платформы при анализе тега

Когда индикатор платформы вернется к своему обычному виду, символы исходного кода будут помечены в автономной базе данных, а функции навигации по исходному коду готовы к использованию.

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

Поиск символов

Вы можете искать символы в текущем файле или рабочей области, чтобы быстрее перемещаться по коду.

Чтобы найти символ в текущем файле, нажмите kb(workbench.action.gotoSymbol) , затем введите имя искомого символа. Появится список потенциальных совпадений, который будет отфильтрован по мере ввода. Выберите из списка совпадений, чтобы перейти к его расположению.

Поиск в текущем файле

Чтобы найти символ в текущей рабочей области, начните с нажатия kb(workbench.action.showAllSymbols), а затем введите имя символа. Список потенциальных совпадений появится, как и раньше. Если вы выберете совпадение, найденное в файле, который еще не открыт, файл будет открыт перед переходом к местоположению совпадения.

Поиск в вашей рабочей области

Просмотр определения

Вы можете быстро просмотреть, как был определен символ, используя функцию Peek Definition. Эта функция отображает несколько строк кода рядом с определением внутри окна просмотра, чтобы вы могли взглянуть, не покидая своего текущего местоположения.

Чтобы просмотреть определение символа, поместите курсор на символ в любом месте, где он используется в вашем коде, а затем нажмите kb(editor.action.previewDeclaration) . Кроме того, вы можете выбрать «Просмотр определения» в контекстном меню (щелкните правой кнопкой мыши и выберите «Просмотр определения»).

Peek определение< бр />

В настоящее время расширение C/C++ не анализирует код таким образом, чтобы различать конкурирующие определения в зависимости от того, как используется символ. Эти конкурирующие определения возникают, когда символ определяет разные вещи в разных контекстах, например, с перегруженными функциями, классами и их конструкторами и в других ситуациях. Когда это происходит, каждое из конкурирующих определений отображается в правой части окна просмотра, а исходный код текущего выбора отображается слева.

Открыв окно просмотра, вы просматриваете список конкурирующих определений, чтобы найти интересующее вас определение. Если вы хотите перейти к местоположению одного из определений, просто дважды щелкните интересующее вас определение. или дважды щелкнув в любом месте исходного кода, отображаемого в левой части окна просмотра.

Перейти к определению

Вы также можете быстро перейти к месту определения символа с помощью функции "Перейти к определению".

Чтобы перейти к определению символа, поместите курсор на символ в любом месте, где он используется в вашем коде, а затем нажмите kb(editor.action.goToDeclaration) . Кроме того, вы можете выбрать «Перейти к определению» из контекстного меню (щелкните правой кнопкой мыши, затем выберите «Перейти к определению»). Если имеется только одно определение символа, вы перейдете непосредственно к его местоположению, в противном случае конкурирующие определения отображаются в окне просмотра, как описано в предыдущем разделе, и вам нужно выбрать определение, к которому вы хотите перейти.

Отладка

Отладка поддерживается в Linux (64-разрядная версия Ubuntu 14.04) и OS X (см. Известные ограничения ниже).

Подготовка файла launch.json к отладке

Прежде чем вы сможете отлаживать свое приложение, вам нужно настроить несколько вещей. Перейдите к представлению отладки (щелкните значок отладки на панели инструментов в левой части окна VS Code), затем на панели отладки щелкните значок Параметры и выберите Запуск C++ (GDB) . Откроется файл launch.json для редактирования.

launch.json

Этот файл, launch.json , содержит конфигурации, которые сообщают отладчику, как взаимодействовать с вашим приложением. По умолчанию включены две конфигурации: одна определяет свойства для запуска вашего приложения в GDB из VS Code, а другая определяет свойства для присоединения GDB к уже запущенному процессу. Обратите внимание, что запуск вашего приложения в GDB в настоящее время не поддерживается в OS X, поэтому вам нужно использовать Attach для отладки приложений OS X.

Как минимум вам потребуется обновить свойство 'program', чтобы оно содержало имя программы и путь, но вы также можете изменить и другие свойства. Вы можете просмотреть всплывающую подсказку, которая описывает каждое свойство и его возможные значения, наведя курсор на свойство. Дополнительные сведения о свойствах файла launch.json и о том, как их использовать, см. в документации по отладке VS Code.

После того как ваш файл launch.json настроен, вы готовы начать отладку, но помните, что VS Code не будет перестраивать вашу программу, когда вы вносите в нее изменения между сеансами отладки, если вы также не создадите файл task.json для вызова сборку и задайте его как свойство preLaunchTask в файле launch.json

Условные точки останова

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

Условный разрыв

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

Точки останова функций

Точки останова функции позволяют прерывать выполнение в начале функции, а не на определенной строке кода. Чтобы установить точку останова функции, на панели отладки щелкните правой кнопкой мыши панель "Точки останова", затем выберите "Добавить точку останова функции" и введите имя функции, выполнение которой вы хотите прервать.

Оценка выражений

VS Code поддерживает вычисление выражений в нескольких контекстах:

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

Обратите внимание, что выражения в области просмотра действуют в отлаживаемом приложении; выражение, которое изменяет значение переменной, будет изменять эту переменную на время выполнения программы.

Многопоточная отладка

Расширение C/C++ для VS Code теперь позволяет отлаживать многопоточный код.

Отладка основного дампа

Расширение C/C++ для VS Code также позволяет выполнять отладку с использованием дампа памяти. Для отладки с использованием дампа памяти откройте файл launch.json для редактирования и добавьте свойство coreDumpPath в конфигурацию запуска C++, установив его значение в виде строки, содержащей путь к дампу ядра. Это будет работать даже для многопоточных программ и программ x86, отлаживаемых на машине x64.

Команды GDB и MI

Вы можете выполнять команды GDB или MI непосредственно через консоль отладки с помощью команды -exec, но будьте осторожны — выполнение команд GDB непосредственно в консоли отладки не тестировалось и в некоторых случаях может вызвать сбой VS Code. Дополнительные сведения об отладке с помощью VS Code см. в этом введении в отладку в VS Code.

Другие функции отладки

  • Безусловные точки останова
  • Окно просмотра
  • Стек вызовов
  • Шаговое

Известные ограничения

Символы и кодовая навигация

  • Поскольку расширение не анализирует тела функций, функции просмотра определения и перехода к определению не работают для символов, определенных внутри тела функции.

Отладка

  • Отладка в настоящее время не поддерживается в Windows.
  • 64-разрядная версия Ubuntu 14.04 остается единственной версией Linux, которая официально поддерживает отладку, но автоматическая установка функций отладки больше не блокируется в версиях Linux, отличных от 64-разрядной версии Ubuntu 14.04. Хотя это упрощает установку в других версиях Linux, и мы рекомендуем вам попробовать отладку в предпочитаемой вами версии Linux, такие установки пока не поддерживаются.
  • GDB требует повышенных разрешений для подключения к процессу. При использовании присоединиться к процессу перед началом сеанса отладки необходимо указать пароль.
  • Дополнительные шаги по установке необходимо выполнить вручную, чтобы включить отладку в OS X. См. раздел Ручная установка расширения отладчика C++ в файле README.
  • Процесс запуска в настоящее время не поддерживается в OS X.
  • Дополнительный терминал не предоставляется для программ, которые уже отображают терминал, и оболочка GDB недоступна для этих приложений.

Дальнейшие шаги

Читайте дальше, чтобы узнать о:

    - узнайте больше о расширенных функциях редактирования - используйте задачи для создания своего проекта и многое другое - узнайте, как использовать отладчик с вашим проектом

Часто задаваемые вопросы

В: Какие версии Linux поддерживают отладку?

О: В этом выпуске 64-разрядная версия Ubuntu 14.04 остается единственной версией Linux, официально поддерживающей отладку. Однако расширение больше не полагается на сценарий установки, найденный в предыдущих версиях, для установки необходимых зависимостей; ранее этот сценарий блокировал автоматическую установку в версиях Linux, отличных от 64-разрядной версии Ubuntu 14.04. Благодаря этому вам больше не нужно вручную выполнять действия, описанные в сценарии, для включения функций отладки в других версиях Linux. Хотя это упрощает установку в других версиях Linux, и мы рекомендуем вам попробовать отладку в предпочитаемой вами версии Linux, такие установки пока не поддерживаются.

В: Мой проект не загружается.

О: В настоящее время VS Code не поддерживает файлы проекта C++, вместо этого он считает выбранный вами каталог рабочей областью вашего проекта. Файлы исходного кода внутри этого каталога и его подкаталогов являются частью рабочей области.

В: IntelliSense не работает.

О: В этом выпуске IntelliSense не поддерживается. Мы планируем включить эту и другие функции в будущих версиях.

В: Как создать/запустить проект?

О: VS Code поддерживает задачи, которые можно настроить для сборки приложения, и изначально понимает выходные данные MSBuild, CSC и XBuild. Дополнительные сведения см. в документации по задачам.

В этой статье объясняется схема файла настроек c_cpp_properties.json.

Пример

Свойства верхнего уровня

env Массив определяемых пользователем переменных, которые будут доступны для замены в конфигурациях с помощью стандартного синтаксиса переменных среды: $ < >или $ . Допускаются строки и массивы строк.

configurations Массив объектов конфигурации, которые предоставляют механизму IntelliSense информацию о вашем проекте и ваших предпочтениях. По умолчанию расширение создает для вас конфигурацию на основе вашей операционной системы. Вы также можете добавить дополнительные конфигурации.

версия Мы рекомендуем не редактировать это поле. Он отслеживает текущую версию файла c_cpp_properties.json, чтобы расширение знало, какие свойства и настройки должны присутствовать и как обновить этот файл до последней версии.

Свойства конфигурации

имя Понятное имя, которое идентифицирует конфигурацию. Linux, Mac и Win32 — это специальные идентификаторы для конфигураций, которые будут выбираться автоматически на этих платформах. Строка состояния в VS Code покажет вам, какая конфигурация активна.Вы также можете нажать на метку в строке состояния, чтобы изменить активную конфигурацию.

compilerPath (необязательно) Полный путь к компилятору, который вы используете для сборки проекта, например /usr/bin/gcc , чтобы обеспечить более точную работу IntelliSense. Расширение будет запрашивать у компилятора системные пути включения и определения по умолчанию для использования в IntelliSense.

Ввод "compilerPath": "" (пустая строка) пропустит запрос компилятора. Это полезно, если указанный компилятор не поддерживает аргументы, используемые для запроса, так как расширение по умолчанию вернется к любому компилятору, который сможет найти (например, Visual C). Отсутствие свойстваcompilePath не приводит к пропуску запроса.

compilerArgs (необязательно) Аргументы компилятора для изменения используемых включений или определений, например -nostdinc++ , -m32 и т. д.

intelliSenseMode Используемый режим IntelliSense, который сопоставляется с зависящим от архитектуры вариантом MSVC, gcc или Clang. Если не задано или задано значение $ , расширение выберет значение по умолчанию для этой платформы.

  • Windows: msvc-x64
  • Линукс: gcc-x64
  • macOS: clang-x64

defines Список определений препроцессора для механизма IntelliSense, который будет использоваться при синтаксическом анализе файлов. При необходимости используйте =, чтобы задать значение, например, VERSION=1 .

cStandard Версия стандарта языка C для использования в IntelliSense.

cppStandard Версия стандарта языка C++ для использования в IntelliSense.

configurationProvider Идентификатор расширения VS Code, которое может предоставить информацию о конфигурации IntelliSense для исходных файлов. Например, используйте идентификатор расширения VS Code ms-vscode.cmake-tools, чтобы предоставить информацию о конфигурации из расширения CMake Tools.

windowsSdkVersion Версии Windows SDK включают путь для использования в Windows, например 10.0.17134.0 .

macFrameworkPath Список путей, которые механизм IntelliSense будет использовать при поиске включенных заголовков из платформ Mac. Поддерживается только в конфигурациях для macOS.

forcedInclude (необязательно) Список файлов, которые должны быть включены перед обработкой любых других символов в исходном файле. Файлы включены в указанном порядке.

compileCommands (необязательно) Полный путь к файлу compile_commands.json для рабочей области. Включенные пути и определения, обнаруженные в этом файле, будут использоваться вместо значений, установленных для параметров includePath и определения. Если в базе данных команд компиляции нет записи для единицы перевода, которая соответствует файлу, который вы открыли в редакторе, появится предупреждающее сообщение, и вместо этого расширение будет использовать includePath и определять параметры.

Дополнительную информацию о формате файла см. в документации Clang. Некоторые системы сборки, такие как CMake, упрощают создание этого файла.

Просмотреть свойства

путь Список путей, по которым синтаксический анализатор тегов будет искать заголовки, включенные в ваши исходные файлы. Если опущено, в качестве пути будет использоваться includePath. Поиск по этим путям по умолчанию является рекурсивным. Укажите *, чтобы указать нерекурсивный поиск. Например: $ будет искать во всех подкаталогах, а $/* — нет.

Вы можете переопределить значения по умолчанию для свойств, заданных в c_cpp_properties.json .

Настройки кода Visual Studio

Следующие параметры C_Cpp.default.* сопоставляются с каждым из свойств в блоке конфигурации c_cpp_properties.json . А именно:

Эти настройки обладают всеми преимуществами настроек VS Code, а это означает, что они могут иметь значения по умолчанию, "Пользователь", "Рабочее пространство" и "Папка". Таким образом, вы можете установить глобальное значение для C_Cpp.default.cppStandard в настройках «Пользователь» и применить его ко всем папкам, которые вы открываете. Если для какой-либо папки требуется другое значение, вы можете переопределить это значение, добавив значение «Папка» или «Рабочее пространство».

Это свойство настроек VS Code позволяет настраивать каждую из ваших рабочих областей независимо, делая файл c_cpp_properties.json необязательным.

Обновлен синтаксис c_cpp_properties.json

В принятый синтаксис c_cpp_properties.json добавлена ​​специальная переменная, которая будет указывать расширению вставлять значение из упомянутых выше настроек VS Code. Если вы установите значение любого параметра в c_cpp_properties.json на «$», оно даст указание расширению прочитать параметр VS Code по умолчанию для этого свойства и вставить его. Например:

Обратите внимание, что для свойств, которые принимают строку [], предложенный выше синтаксис позволяет вам дополнить параметр VS Code дополнительными значениями, что позволяет вам иметь общие пути, перечисленные в настройках VS Code, и параметры, зависящие от конфигурации, в c_cpp_properties. .json .

Если свойство отсутствует в c_cpp_properties.json , расширение будет использовать значение в настройке VS Code. Если разработчик назначает значения всем параметрам, применимым к данной папке, то c_cpp_properties.json можно удалить из папки .vscode, так как он больше не нужен.

Подробнее о файле настроек c_cpp_properties.json см. в справочнике по c_cpp_properties.json.

Система включает

Будет добавлен новый параметр, позволяющий указать системный путь включения отдельно от пути включения папки. Если этот параметр имеет значение, то системный путь, который расширение получает от компилятора, указанного в параметреcompilePath, не будет добавляться в массив путей, используемый расширением для IntelliSense. Мы можем захотеть предоставить команду VS Code для заполнения этого значения из значения по умолчанию компилятора для пользователей, которые заинтересованы в его использовании на случай, если они захотят внести некоторые изменения в значения по умолчанию.

Система включает путь/определяет стратегии разрешения

Расширение определяет системный includePath и определяет отправку в механизм IntelliSense следующим образом:

Если compileCommands имеет допустимое значение и файл, открытый в редакторе, находится в базе данных, используйте команду compile в записи базы данных, чтобы определить путь включения и определения.

  • Система включает путь и определяет, используя следующую логику (по порядку):
    1. Если для systemIncludePath задано значение, используйте его (перейдите к следующему шагу для поиска системных определений).
    2. Если компиляторPath действителен, запросите его.
    3. Интерпретируйте первый аргумент команды как компилятор и попытайтесь запросить его.
    4. Если для компилятораPath задано значение "", используйте пустой массив для включения системного пути и определения.
    5. Если компиляторPath не определен, найдите компилятор в системе и запросите его.

Если compileCommands недействителен или текущий файл не указан в базе данных, используйте includePath и определяет свойства в конфигурации для IntelliSense.

  • Система включает путь и определяет, используя следующую логику (по порядку):
    1. Если для systemIncludePath задано значение, используйте его (перейдите к следующему шагу для поиска системных определений).
    2. Если компиляторPath действителен, запросите его.
    3. Если для компилятораPath задано значение "", используйте пустой массив для системного пути включения и определений (предполагается, что они уже находятся в includePath и определениях для текущей конфигурации).
    4. Если компиляторPath не определен, найдите компилятор в системе и запросите его.

Системные включения не следует добавлять в переменные includePath илиbrowse.path. Если расширение обнаружит какие-либо пути включения системы в свойстве includePath, оно автоматически удалит их, чтобы убедиться, что пути включения системы добавляются последними и в правильном порядке (это особенно важно для GCC/Clang).

Улучшенная семантическая раскраска

Когда IntelliSense включен, расширение Visual Studio Code C/C++ поддерживает семантическое окрашивание. Дополнительные сведения о настройке цветов для классов, функций, переменных и т. д. см. в разделе Расширенная раскраска.

Журнал расширений

Если у вас возникла проблема с расширением, которую мы не можем диагностировать на основе информации в вашем отчете о проблеме, мы можем попросить вас включить ведение журнала и отправить нам ваши журналы. Информацию о том, как собирать журналы, см. в разделе Ведение журналов расширения C/C++.

Я пытаюсь собрать C/C++ в Visual Studio Code. Я установил C/C++ и все соответствующие расширения.

Как и где я могу добавить включаемые пути в приведенных ниже конфигурациях?

13 ответов 13

Более актуальный взгляд на ситуацию. В 2018 году расширение C++ добавило еще один параметр в путь компилятора конфигурации файла c_cpp_properties.json;

compilerPath (необязательно) Абсолютный путь к компилятору, который вы используете для сборки проекта. Расширение будет запрашивать у компилятора пути включения системы и определения по умолчанию для использования в IntelliSense.

При использовании includePath не потребуется, так как IntelliSense будет использовать компилятор для определения системных путей включения.

Как и где добавить включаемые пути в конфигурациях ниже?

Список представляет собой массив строк, поэтому добавление пути включения будет выглядеть примерно так:

В связанном источнике есть gif, показывающий формат конфигурации Win32, но то же самое относится и к другим.

Вышеприведенный пример включает путь SDK (OSX 10.11), если Xcode установлен.

Примечание После изменения пути включения обновление может занять некоторое время.

Расширение cpptools можно найти здесь.

Дополнительную документацию (от Microsoft) по поддержке языка C++ в VSCode можно найти здесь.

В целях сохранения (из обсуждения) ниже приведены основные фрагменты содержимого файла tasks.json для компиляции и выполнения либо файла C++, либо файла C. Они позволяют использовать пробелы в имени файла (требуется избегать дополнительных кавычек в json с помощью \" ). Оболочка используется в качестве бегуна, что позволяет выполнять компиляцию ( clang.) и выполнение ( && ./a.out ) программы. Также предполагается, что tasks.json «живет» в локальной рабочей области (в каталоге .vscode). Дополнительные сведения о task.json, такие как поддерживаемые переменные и т. д., можно найти здесь.

Имейте в виду, что вы можете использовать /** для рекурсивного включения: "includePath":[ "C:/path/to/all/includes/**" ] .

В новых версиях расширения C/C++ рекомендуется использовать свойствоcompilePath для установки системных включений/определений, а не добавлять их в свойство includePath.

Для всех, кто не работает с Google, вот исправление для VSCode 1.40 (2019):

Откройте файл global settings.json: «Файл» > «Настройки» > «Настройки»


Затем выберите вкладку «Пользователь», откройте раздел «Расширения», нажмите «C/C++». Затем прокрутите правую панель, пока не найдете кнопку «Изменить в settings.json».

Затем выберите вкладку

Наконец вы добавляете раздел "C_Cpp.default.includePath". Представленный там код взят из моей собственной системы (Windows 7). Вы можете использовать его как основу для ваших собственных путей к библиотекам. (Не забудьте изменить ВАШЕ ПОЛЬЗОВАТЕЛЬСКОЕ ИМЯ на правильное системное (в моем случае windows) имя пользователя)
(информация о редактировании: существует проблема с рекурсией моего подхода. VSCode не любит несколько определений для одного и того же Я решил это с помощью "C_Cpp.intelliSenseEngine": "Синтаксический анализатор тегов" )

Наконец, вы добавляете

код перед строкой 7 в файле settings.json не имеет ничего общего с arduino или includePath. Вы не можете это копировать.

Раздел JSON для добавления в settings.json:

Привет, @Lorenz. Вы уверены, что путь к файлу (файлам) заголовка ( *.h ) указан правильно? Вы уверены, что он находится в папке «Program Files», а не в «Program Files (x86)»? Кроме того, косая черта должна быть символом /, а не обратной косой чертой ``.

@Vitox: спасибо. Стоит отметить, что сначала я добавил включаемые каталоги без добавления последней строки "C_Cpp.intelliSenseEngine": "Tag Parser" , и это не сработало. После его добавления все работает отлично.

Для пользователей Mac, у которых вместо Xcode используются только инструменты командной строки, проверьте каталог /Library/Developer/CommandLineTools, например::

Возможно, вам потребуется изменить путь, если у вас установлена ​​другая версия инструментов командной строки.

Примечание. Вы также можете открыть/сгенерировать файл c_cpp_properties.json с помощью команды C/Cpp: Edit Configurations из палитры команд (⇧⌘P).

В текущем файле c_cpp_properties.json в верхней части файла указано: ". ПРЕДУПРЕЖДЕНИЕ. ": "ПОЖАЛУЙСТА, НЕ ИЗМЕНЯЙТЕ ЭТОТ ФАЙЛ! ИСПОЛЬЗУЙТЕ docs.platformio.org/page/projectconf/…" Я подтверждено также, что при добавлении ссылок на этот файл они могут удаляться

В настройках пользователя добавьте:

это, с путями, указанными в других ответах, плюс « ** », добавленное в конец, сделало свое дело! (например: "C_Cpp.default.includePath": [ "C:/Users/Administrator/Documents/Arduino/libraries/**" ])

Что касается меня на Mac, я должен был точно указать, где находится файл заголовка, я не мог инкапсулировать * для всей папки. Например, у меня был нужный мне заголовочный файл; Мне пришлось указать папку заголовка для VSCode, чтобы найти ее: "C_Cpp.default.includePath":[ "/Users/Github/Learning/Cpp_repo/FreeStore/header/"

Этот ответ может быть запоздалым, но я просто решил проблему. Вот мой файл c_cpp_properties.json:

Наилучший способ настроить стандартные заголовки для вашего проекта — установить для свойстваcompilePath конфигурации в файле c_cpp_properties.json. Не рекомендуется добавлять пути включения системы в свойство includePath.

Есть ли глобальный файл c_cpp_properties.json? Кажется, я помню, что был один, в ~/.vscode/ или, возможно, ~/.vscode-oss/ (в Linux); теперь я не вижу ни одного.

Нет, глобального файла c_cpp_properties.json нет. Однако вы можете использовать настройки C_Cpp.default.* для достижения аналогичного эффекта.

Я думаю, что в этом ответе используется сбивающее с толку выражение, возможно, это просто мой плохой английский? Я нашел это намного лучше для понимания, скопировав здесь комментарий @Bob Brown в stackoverflow.com/questions/37522462/…: «В более новых версиях расширения C/C++ рекомендуется использовать свойствоcompilePath для установки системных включений/ вместо добавления их в свойство includePath."

Я решил эту проблему, удалив недавно установленную Visual Studio.

Да. Я установил Visual Studio поверх кода Visual Studio, что, как я думаю, что-то сделало с функционированием VS Code, поскольку просто удалив VS, VSCode начал работать и отлаживать код.

Моя конфигурация c_cpp_properties.json-

Я попробовал это, и теперь работает конфигурация для c_cpp_properties.json

Файл конфигурации task.json

В настройках перейдите к c_cpp_properties.j, измените настройки на:

введите здесь описание изображения

Хорошо, у меня была аналогичная проблема с моим кодом VS, и вот что я понял: ваше расширение запуска кода C/C++ имеет значение пути включения по умолчанию $/** . Это выполняет рекурсивный нисходящий поиск файлов функций заголовков библиотек из папки рабочей области, для этого вам потребуется сохранить копии всех файлов функций заголовков библиотек во всех ваших рабочих папках. Я написал ниже решение, которое сработало для меня.

Шаг 1. Эту проблему можно решить, просто щелкнув правой кнопкой мыши лампочку под волнистой линией (там, где возникает ошибка) и выбрав «Изменить параметры включения пути».

Шаг 2. Теперь прокрутите вниз до раздела «Включить путь» и добавьте значение пути к папке вашего компилятора и добавьте /**, чтобы включить рекурсивный поиск во всех папках ветвления. Если по какой-либо причине файлы заголовков вашей библиотеки хранятся где-то еще, добавьте этот путь. Вы также можете уточнить, указав точное значение папки, в которой хранятся файлы заголовков.

И все! теперь вы больше не должны получать эту волнистую ошибку линии! Никаких волнистых линий!

Я использую старую версию VS Code (1.48.1). Этот ответ решил для меня проблему файла, не генерирующего информацию IntelliSense (та же основная проблема, что и в вопросе). Если сброса IntelliSense недостаточно ( Ctrl+Shift+P → C/C++: сброс базы данных IntelliSense ; это не для меня), попробуйте следующее:

Возможно, вам потребуется выполнить еще один сброс базы данных IntelliSense и перезапустить VS Code, прежде чем он начнет правильно отображать всю информацию IntelliSense. Я также обнаружил, что, похоже, помогает открыть включаемые файлы, которые он ищет, чтобы помочь ему найти файл. Я надеюсь, что это продолжит работать для меня. Пока все хорошо.

Читайте также: