Этот ответ может не полностью дать вам то, что вы хотите, но, надеюсь, он поможет вам настроить среду VS Code.
В заголовке вашего вопроса вы упоминаете "Makefile projects", что свидетельствует о том, что высложилось неправильное впечатление, что (GNU) Makefiles записывают настройки проекта так же, как и файлы проекта Visual Studio.Makefile-ы не работают так, и краткий ответ на ваш вопрос - Нет, похоже, нет способа «импортировать» Make-файлы в VS Code и автоматически устанавливать значения в вашем файле c_cpp_properties.json
.
* 1005Сказав это, есть некоторые другие механизмы, которые могут помочь вам начать работу с VS Code в вашей ситуации, в зависимости от других элементов, которые есть в вашем наборе инструментов.
VS Code работает при условии, что он открывает одинили несколько каталогов в вашей файловой системе.Когда вы это сделаете, он автоматически просканирует все свои подкаталоги, отобразит дерево и выполнит линтинг (если он включен) для выявления проблем.Действительно, включаемые каталоги необходимо добавить вручную в ваш файл c_cpp_properties.json
, но чтобы рекурсивно добавить все ваши подкаталоги в список включаемых каталогов, вы можете использовать выражение
"${workspaceRoot}/**"
в качестве одного из элементов в вашем каталоге.includePath
настройка.См. Сообщение в блоге Расширение Visual Studio Code C / C ++. Обновление за май 2018 г. - настройка IntelliSense стала намного проще! для получения дополнительной информации.Это часто решает множество пропущенных символов.Если вы также используете внешние или сторонние библиотеки, то вам нужно добавить их в настройку includePath
вручную, и нет никакого способа обойти это.
Кроме того, вы можете создавать задачи VS Code для выполнения вашихmake
команда по своему вкусу.Это объясняется здесь: Интеграция с внешними инструментами с помощью задач . Microsoft C / C ++ Extension поставляется с набором так называемых problemMatchers, которые анализируют выходные данные вашей команды и могут интерпретировать это для определенных известных компиляторов.Вы увидите гиперссылки на ошибки и предупреждения, чтобы перейти непосредственно к соответствующему местоположению в вашем коде.
Пример такой задачи может выглядеть следующим образом:
{
"label": "Build All Debug",
"type": "shell",
"command": "make -f path/to/Makefile DEBUG=1",
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"reveal": "always",
"panel": "new"
},
"problemMatcher": [
"$gcc"
]
}