LINUX.ORG.RU

Не могу понять логику работы VSCode

 


0

1

Делаю так:

  1. Хочу настроить выбор компилятора (g++ и clang)

  2. В tasks.json указываю две задачи, а одной: «label»: «C/C++: g++ build active file», «command»: «/usr/bin/g++», в другой: «label»: «C/C++: clang build active file», «command»: «/usr/bin/clang++»

  3. В launch.json тоже указываю две задачи: «preLaunchTask»: «C/C++: g++ build active file» и «preLaunchTask»: «C/C++: clang build active file»

  4. Что непонятно:

а) Зачем нужна кнопка «Add configuration», причем она появляется только при редактировании launch.json? И она же вынесена в правый верхний угол программы под иконкой шестеренки. Это что настолько важный функционал? Я что скопировать несколько строк не смогу? А если не смогу то почему она только в одном файле, а нет например в tasks.json?

б) В правом верхнем углу кнопка с выбором Debug или Run. При выборе любой из кнопок иногда возникает список из нескольких пунктов (обычно 7) но никогда не 2 как я предполагаю причем некоторые выглядят дубликатами, а один пункт «cpp build» заведомо нерабочий. Иногда действие выполняется сразу не спрашивая. Как программа вообще заполняет этот список? Зачем разделять debug и run? А если разделять то почему тогда нет отдельных build и compile?

в) Почему F5 не предлагает выбор компилятора? Какой она использует в качестве умолчания? В то же время ctrl + shift + b вызывает компиляцию с выбором компилятора. Почему такое разное поведение?



Последнее исправление: Hunter1972 (всего исправлений: 3)

Это не ide, там не настраивается компилятор. Тебе нужно иметь свой, например, Makefile или CMakeLists.txt и соответствующее расширение для работы с ними.

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

grem ★★★★★
()
Ответ на: комментарий от grem

Это я все понимаю, реально все работает как IDE, обошелся пока без симейка, в VSC есть опция какие файлы компилировать, куда складывать исполняемые файлы, разные конфигурации можно настроить типа дебага и релиза. Мне все это нравится и удобно, но не пойму как он иногда работает, а это напрягает.

Hunter1972
() автор топика
Ответ на: комментарий от ox55ff

Тогда это первая ide на моей памяти, которая не умеет сама строить зависимости между файлами проекта.

Поддержка синтаксиса - это не поддержка языков. А автодополнение и переходы у меня и в kate работают. Для этого достаточно наличия внешнего lsp сервера.

grem ★★★★★
()
Ответ на: комментарий от Hunter1972

Всё же лучше хотя бы на базовом уровне освоить какую-нибудь поддерживаемую систему сборки. Иначе без vscode с аналогичными настройками ты проект не соберёшь.

Сейчас ms даже плагин для make сделали, но он для простых проектов и с него можно начать, но зависимости самому прибётся расписывать.

grem ★★★★★
()
Ответ на: комментарий от grem

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

Hunter1972
() автор топика
Ответ на: комментарий от Hunter1972

Все народ проблема решена, надо просто забыть про эти кнопки в правом верхнем углу и использовать выбор конфигурации из дебаг тулбара слева, там как раз всего два конфига, F5 использует выбранный.

Hunter1972
() автор топика
21 сентября 2024 г.

а) Зачем нужна кнопка «Add configuration», причем она появляется только при редактировании launch.json? И она же вынесена в правый верхний угол программы под иконкой шестеренки. Это что настолько важный функционал? Я что скопировать несколько строк не смогу? А если не смогу то почему она только в одном файле, а нет например в tasks.json?

Видимо, эта кнопка добавляет шаблон-болванку именно в формате, предназначенном для launch.json.

Xintrea ★★★★★
()
Ответ на: комментарий от ox55ff

Хотел зайти написать, что vs code это не IDE и что лучше взять CLion.

Каково было моё удивление когда я обнаружил здесь свой прошлогодний комментарий, что vs code является IDE. И что теперь делать. Я в растеренности и не понимаю как я мог такое заявить.

ox55ff ★★★★★
()