#c #c #visual-studio-code #vscode-settings #vscode-tasks
Вопрос:
Как создать task.json
, а launch.json
также для создания и отладки проекта на C/C , из которого параметры могут загружаться автоматически c_cpp_configuration.json
? (такие параметры, как путь включения, путь компилятора)
Окружающая среда:
windows 10.0.19041
ПРОТИВ кода 1.52.1
ПРОТИВ расширения кода: ms-vscode.cpptools 1.2.2
Допустим, у меня есть следующая структура файлов:
./
|
|--- .vscode/
|
|--- inc/
| |--- header1.h
| |--- header2.h
|
|--- src/
| |--- implementation1.c
| |--- implementation2.c
|
|--- main.c
И у меня есть путь включения, установленный в глобальном settings.json
:
"C_Cpp.default.includePath": ["${workspaceFolder}/inc"],
Интеллект работает нормально. Я могу найти определение заголовков из ссылки в main.c
.
И я знаю, что могу успешно построить проект без кода vs:
gcc -g .*.c .src*.c -I .inc
Итак, если я хочу построить этот проект с помощью кода vs, я должен установить task.json
вот так:
...
"args": [
"-g",
"${workspaceFolder}\*.c", "${workspaceFolder}\src\*.c",
"-I", "${workspaceFolder}\inc",
"-o", "${fileDirname}\${fileBasenameNoExtension}.exe"
]
...
Как для работы IntelliSense, так и для сборки проекта я должен настроить пути в settings.json
( c_cpp_configuration.json
) и task.json
.
Мне нужно элегантное решение, в котором мне нужно только один раз задать пути включения как для работы IntelliSense, так и для сборки проекта. Возможно ли это? Было бы здорово, если бы я мог решить эту проблему без дополнительных расширений. Но у вас есть расширение, которое может заменить ms-vscode.cpptools
и выполнить трюк, это тоже было бы здорово.
Ответ №1:
Вот что я делаю: удалите расширение Microsoft C/C и замените его на Clangd для завершения кода и встроенную отладку для отладки. У меня был лучший опыт работы с этими двумя, в том числе более простая конфигурация.
Clangd настраивается с помощью одного вызываемого файла compile_commands.json
, который представляет собой просто список флагов компилятора для каждого исходного файла.
Затем начните использовать правильную систему сборки. CMake, например, может сгенерировать этот файл из коробки. Для Make есть инструмент для его создания. В крайнем случае, вы можете написать его сами.
Комментарии:
1. Спасибо вам за ваше предложение. Я попробую это сделать. Make и CMake-это определенно те, которым мне рано или поздно придется научиться. Тем не менее, я все еще ищу решение с
ms-vscode.cpptools
помощью . Если в течение некоторого времени не будет нового ответа, этот ответ будет принят.
Ответ №2:
Я бы посоветовал вам воспользоваться этим расширением:
Судья CPH
Так как это устранит все проблемы отладчика, и все вы сможете вводить прямые значения во ввод и получать вывод!!
Плюсы:
- У него есть опция тестового случая, как у нас на онлайн-экзаменах, поэтому вы можете ввести a и в тестовый случай, указанный в вопросе, и проверить свой ответ соответственно!
- Вы также можете запустить несколько тестовых случаев!!