VSCode配置文件“.vscode/c_cpp_properties.json”不断被覆盖的原因及解决方法

一、问题现象

昨天,我在用VSCode写一个小算法程序,使用CMake配置文件:“CMakeLists.txt”进行工程管理。算法测试倒还顺利,但VSCode出现了一个令人恼火的问题,每次重新打开VSCode后,配置文件“.vscode/c_cpp_properties.json”总会被覆盖(图1为正确配置文件截图,图2为错误配置文件截图),导致的结果就是VSCode无法使用智能感知,不但报一堆语法错误,而且撰写代码时没有任何提示,这是多么可恶的一件事情!
1
图1 正确的配置文件截图
2
图2 错误的配置文件截图

二、问题原因

昨天找了一个晚上都没发现错误原因,今天突然想起,这是不是因为使用了CMake配置文件的原因,查看“.vscode”目录,里面果然有一个与CMake相关的配置文件:“.cmaketools.json”。是不是因为某个程序自动使用“.cmaketools.json”文件中的内容覆盖了“c_cpp_properties.json”?于是立即在VSCode中使用快捷键“Ctrl+Shift+X”打开应用商店,搜索“CMake”,发现前段时间安装了一个垃圾插件:“CMake Tools Helper”,正是这个恶魔每次都自动读取“.cmaketools.json”文件内容去覆盖“c_cpp_properties.json”,导致我无法使用VSCode的智能感知。
3
图3 “.cmaketools.json”配置文件
4
图4 “CMake Tools Helper”插件

三、解决方法

问题原因找到了,当然得想解决办法,到“CMake Tools Helper”插件的Github网站:https://github.com/maddouri/vscode-cmake-tools-helper,看到很多人都遇到了和我一样的问题:https://github.com/maddouri/vscode-cmake-tools-helper/issues/4https://github.com/maddouri/vscode-cmake-tools-helper/issues/10
5
图5 Github网站的问题报告

从目前回复看,该插件似乎未给出一个好的解决方案。有的人说可以将“c_cpp_properties.json”设为只读;有的人更为干脆,直接给个差评后缷载。我自然不能容忍这个垃圾插件坏事,也是直接差评后缷载。至此,世界重新恢复和平,美好时光再次回来。

要在 VS Code 配置 51 单片机环境,需要进行以下步骤: 1. 安装 C/C++ 扩展 在 VS Code 搜索并安装 C/C++ 扩展,以便在代码编写时获得语法高亮、智能提示等功能。 2. 配置 c_cpp_properties.json 文件 在项目根目录下创建一个名为 c_cpp_properties.json文件,并按照以下格式进行配置: ``` { "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}/**", "C:/Keil_v5/ARM/INC" ], "defines": [], "compilerPath": "C:/Keil_v5/ARM/ARMCC/bin/armcc.exe", "cStandard": "c11", "cppStandard": "c++17", "intelliSenseMode": "${default}" } ], "version": 4 } ``` 其,配置项的含义如下: - configurations:配置项数组。 - name:配置项名称。 - includePath:头文件搜索路径。 - defines:预处理器定义。 - compilerPath:编译器路径。 - cStandard:C 语言标准。 - cppStandard:C++ 标准。 - intelliSenseMode:IntelliSense 模式。 3. 配置 launch.json 文件 在项目根目录下创建一个名为 launch.json文件,并按照以下格式进行配置: ``` { "version": "0.2.0", "configurations": [ { "name": "Debug 51 MCU", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/project_name", "args": [], "stopAtEntry": true, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "miDebuggerPath": "C:/Keil_v5/ARM/ARMCC/bin/arm-none-eabi-gdb.exe", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ] } ``` 其,配置项的含义如下: - name:配置项名称。 - type:调试器类型。 - request:请求类型。 - program:可执行文件路径。 - args:命令行参数。 - stopAtEntry:是否在程序入口处停止。 - cwd:工作目录。 - environment:环境变量。 - externalConsole:是否在外部控制台运行。 - MIMode:GDB 后端模式。 - miDebuggerPath:GDB 路径。 - setupCommands:执行的命令。 配置完成后,就可以在 VS Code 进行 51 单片机代码的编写、调试等操作了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值