Делаю так:
-
Хочу настроить выбор компилятора (g++ и clang)
-
В tasks.json указываю две задачи, а одной: «label»: «C/C++: g++ build active file», «command»: «/usr/bin/g++», в другой: «label»: «C/C++: clang build active file», «command»: «/usr/bin/clang++»
-
В launch.json тоже указываю две задачи: «preLaunchTask»: «C/C++: g++ build active file» и «preLaunchTask»: «C/C++: clang build active file»
-
Что непонятно:
а) Зачем нужна кнопка «Add configuration», причем она появляется только при редактировании launch.json? И она же вынесена в правый верхний угол программы под иконкой шестеренки. Это что настолько важный функционал? Я что скопировать несколько строк не смогу? А если не смогу то почему она только в одном файле, а нет например в tasks.json?
б) В правом верхнем углу кнопка с выбором Debug или Run. При выборе любой из кнопок иногда возникает список из нескольких пунктов (обычно 7) но никогда не 2 как я предполагаю причем некоторые выглядят дубликатами, а один пункт «cpp build» заведомо нерабочий. Иногда действие выполняется сразу не спрашивая. Как программа вообще заполняет этот список? Зачем разделять debug и run? А если разделять то почему тогда нет отдельных build и compile?
в) Почему F5 не предлагает выбор компилятора? Какой она использует в качестве умолчания? В то же время ctrl + shift + b вызывает компиляцию с выбором компилятора. Почему такое разное поведение?