Clangd - 如何设置在没有 `compile_commands.json` 时使用的默认标志?
Clangd - how to set default flags to be used when there is no `compile_commands.json`?
这应该是不可能的,但我还是想问一下。我正在使用 Clangd 作为 VSCode 的自动补全引擎。效果很好,但有一个问题。
Clang 的官方 Windows 二进制文件依赖于 MSVC 标准库 headers。如果未安装 MSVC,Clang 和 Clangd 会抱怨缺少 headers.
有一个标志使 Clang 使用 MinGW 的 libstdc++ (--target=x86_64-w64-windows-gnu
),我必须将其包含在 compile_commands.json
.
中
这个解决方案有效,但即使没有 compile_commands.json
.
也能有合理的自动完成功能就好了
如果没有 compile_commands.json
,有没有办法告诉 Clangd 假定 --target=x86_64-w64-windows-gnu
?
Is there a way I can tell Clangd to assume --target=x86_64-w64-windows-gnu if there is no compile_commands.json?
compile_flags.txt
If all files in a project use the same build flags, you can put those
flags one-per-line in compile_flags.txt in your source root.
Clangd will assume the compile command is clang $FLAGS some_file.cc.
Creating this file by hand is a reasonable place to start if your
project is quite simple.
只需使用 --target=x86_64-w64-windows-gnu
创建 compile_flags.txt
文件。
在问题被问到后的某个时刻,VSCode Clangd 扩展开始将默认标志暴露给配置:"clangd.fallbackFlags": ["--target=x86_64-w64-windows-gnu"]
.
这应该是不可能的,但我还是想问一下。我正在使用 Clangd 作为 VSCode 的自动补全引擎。效果很好,但有一个问题。
Clang 的官方 Windows 二进制文件依赖于 MSVC 标准库 headers。如果未安装 MSVC,Clang 和 Clangd 会抱怨缺少 headers.
有一个标志使 Clang 使用 MinGW 的 libstdc++ (--target=x86_64-w64-windows-gnu
),我必须将其包含在 compile_commands.json
.
这个解决方案有效,但即使没有 compile_commands.json
.
如果没有 compile_commands.json
,有没有办法告诉 Clangd 假定 --target=x86_64-w64-windows-gnu
?
Is there a way I can tell Clangd to assume --target=x86_64-w64-windows-gnu if there is no compile_commands.json?
compile_flags.txt
If all files in a project use the same build flags, you can put those flags one-per-line in compile_flags.txt in your source root.
Clangd will assume the compile command is clang $FLAGS some_file.cc.
Creating this file by hand is a reasonable place to start if your project is quite simple.
只需使用 --target=x86_64-w64-windows-gnu
创建 compile_flags.txt
文件。
在问题被问到后的某个时刻,VSCode Clangd 扩展开始将默认标志暴露给配置:"clangd.fallbackFlags": ["--target=x86_64-w64-windows-gnu"]
.