Clangd - как установить флаги по умолчанию, которые будут использоваться при отсутствии `compile_commangs.json`?
Вероятно, это невозможно, но я все же хочу спросить. Я использую Clangd в качестве механизма автозаполнения для VSCode. Работает отлично, но есть одна проблема.
Официальные двоичные файлы Clang для Windows полагаются на заголовки стандартной библиотеки MSVC. Если MSVC не установлен, Clang и Clangd жалуются на отсутствие заголовков.
Есть флаг, который заставляет Clang использовать MinGW libstdC++ (--target=x86_64-w64-windows-gnu
), который я должен включить в compile_commands.json
.
Это решение работает, но было бы неплохо иметь разумное автозаполнение даже без compile_commands.json
.
Есть ли способ сказать Клангду предположить --target=x86_64-w64-windows-gnu
если нет compile_commands.json
?
2 ответа
В какой-то момент после того, как вопрос был задан, расширение VSCode Clangd начало предоставлять в конфигурацию флаги по умолчанию:
"clangd.fallbackFlags": ["--target=x86_64-w64-windows-gnu"]
.
Есть ли способ сказать Clangd, чтобы он предполагал --target=x86_64-w64-windows-gnu, если нет compile_commands.json?
Из clangd начало работы :
compile_flags.txt
Если все файлы в проекте используют одни и те же флаги сборки, вы можете поместить эти флаги по одной на строку в compile_flags.txt в корневом каталоге исходного кода.
Clangd будет считать, что команда компиляции - это clang $FLAGS some_file.cc.
Создание этого файла вручную - разумное место для начала, если ваш проект довольно прост.
Просто создайте
compile_flags.txt
файл с
--target=x86_64-w64-windows-gnu
.