求仅支持C语言智能提示的VSCode扩展及clangd配置方案
如何让clangd在VSCode中对C文件里的C++语法报错?
配置clangd启动参数,强制使用C标准编译:
打开VSCode设置(快捷键Ctrl+,),搜索clangd arguments,添加以下参数:--query-driver=**/gcc,**/clang, -std=c99(
c99可替换为你需要的C标准,比如c17)确保VSCode将
.c文件识别为C语言:
在VSCode设置中添加:"files.associations": { "*.c": "c" }也可以点击右下角状态栏的语言模式,手动选择「C」切换当前文件的语言类型。
项目层面配置(推荐):
如果用CMake管理项目,在CMakeLists.txt中添加:set(CMAKE_C_STANDARD 99) set(CMAKE_C_STANDARD_REQUIRED ON)然后生成
compile_commands.json,clangd会自动读取该文件的编译配置,确保C文件用C标准编译,遇到class这类C++语法时直接抛出错误。若手动维护
compile_commands.json,需在每个C文件的编译命令中指定C标准,示例:[ { "directory": "/your/project/path", "command": "clang -std=c99 -c src/main.c -o build/main.o", "file": "src/main.c" } ]
完成以上配置后,在.c文件中写入class A {};这类C++代码时,clangd会立即提示语法错误,比如unknown type name 'class'。
内容的提问来源于stack exchange,提问作者user14503825
相关产品推荐
相关产品推荐

