IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 如何解决VSCode Arduino的红色波浪线报错 -> 正文阅读

[开发工具]如何解决VSCode Arduino的红色波浪线报错

之前我在B站上发了一系列教学视频,里面有一期# [云雾海]嵌入式培训(10)——VSCode_Arduino配置是关于VSCode Arduino安装配置的,里面存在一些问题这里进行一定补正。因为本文是在评论区被阴阳人阴阳怪气后发的,所以内容可能有点暴躁。

一些牢骚

本文为该视频下评论(已删)——”自己都不懂还在这做培训“所著,感谢这位让我明白了什么叫好心当成驴肝肺。

首先我只是个学生又不是什么培训机构的老师,我上传到网上也没有收费。这个培训本身就很随意且只是针对我的队员而不幸被你这种人看到了而已。况且这个培训主要目的也不是教怎么安装环境的,只是当时想到了临时加了上去罢了;

其次,我的整个操作本身是不存在问题的,如果按照正常C++编程这些问题是可以解决的,只是vscode_arduino这个插件在设计的时候没有完全遵照i这个流程罢了,详情可以看github上的issue,这个问题早就老生常谈了,你在百度上面找到的所有方法百分之八十都是错的或者不严谨的;

最后,最后这块安装部分本身你真的可以爱看不看,如果你觉得我后面是废话那就说明你看到了后面并且认为前面是有用的,那么它就可以称之为一场教学,如果你觉得通篇废话什么也没学到,那你还看这么久我不清楚你的脑袋怎么想的,被驴踢了吗还是门夹了?

你可以说出你的疑问或者指出我视频存在的具体问题,比如说你认为我的Intellisence配置部分讲得云里雾里什么的,然后怼着这个说这都没问题,但没必要用这样高高在上的语气说什么“自己都没搞懂就做培训”,啊对对对,就你懂。我只是想做个技术分享,你却希望我像收了费的老师一样给你什么都讲好了?我翻车了一下就不配做培训教学了(甚至还是免费的)?如果觉得我这培训没用自己去买课看或者去花几个月看人家原子野火之类的正经教程,跑评论区来找什么存在感?

正题

现在回到正题,我会在这里告诉你为什么我会在视频里做那些事并且说明具体目的,同时也会告诉你们解决方法。

正确方法

首先说明一下正确方法,无论是上面我提到的百度搜索的结果或者issue里面提出的解决方案,现在都是错误的,事实上不知道是什么时候更新的还是之前修复的,你只需要像我前面一样配置,同时为vscode_arduino插件添加上arduino路径后,现在你只需要放一个示例工程在你的工作空间里面,然后verify一下,arduino就会自动帮你填充出一个完整正确的c_cpp_properties,具体流程如下:

Snipaste_2022-01-29_14-36-48.png

Snipaste_2022-01-29_14-38-25.png

Snipaste_2022-01-29_14-39-54.png

Snipaste_2022-01-29_14-41-35.png

Snipaste_2022-01-29_14-43-26.png

Snipaste_2022-01-29_14-45-19.png

可以看到在arduino自动生成的properties中修改了编译器,添加了引用路径,添加了编译参数同时还添加了一大堆define,这些东西都会影响到我们的intellicense结果导致出错,而arduino不会主动帮你添加这些且在相当一段长时间里我们都是需要手动添加,尤其是define的部分很多很麻烦,所以网上经常有教你怎么解决这些红色波浪线报错的时候教你直接关闭语法检查,这种做法不是很好因为他会让你的工作变得有点麻烦,但是实际上你关不关报不报错都没有问题,只要你按照标准C++语言规范来写东西,这个东西也不会影响到最后的编译。

而如果在一般C或C++编程中,我们只需要添加include path即可,因为一般我们在基础编程的时候不需要给编译器选那么麻烦的参数或添加一些define来满足编译需求,同时vscode就会主动给我们使用clang作为intellicense工具,一般在Windows编程中这些工具是正确够用的,而且在类似arm之类的单片机编程中也不会有太大问题。但是arduino因为使用的是内部工具,所以我们此时不能完全按照C++的标准来,而要顺应他的方式进行添加。所幸现在插件已经升级更新了,所以我们不再需要辛苦地添加那么多麻烦的配置。

好的,现在你看到这应该明白为什么我在视频里我看见红线报错会那么麻烦地在那添加include path,说白了就是为了应付intellicense而已,不改其实也能编译(因为调用的是arduino内部的api)只是编程的时候可能看上去不好看,同时如果不添加include path,最大的问题在于你将无法实现工作空间外的ctrl+鼠标左键跳转函数和数据定义,这也是今后如果你使用vscode在进行C或C++编程时需要经常考虑的问题。

此外我们还可以看到那个issue中被称为解决方案的内容是在.vscode文件中添加settings.json配置文件,然后在其中添加配置:“C_Cpp.intelliSenseEngine”: “Tag Parser”,这个部分说白了就是给你的intellicense添加模糊感知,这会让intellicense引擎更加智能,但是同样因为是模糊感知所以也容易在你乱写东西的时候检查不出来(绝大多数情况下是没问题的),它是一个很好的辅助,但是我建议你在自己写非Arduino程序的时候不要用这东西,毕竟代替intellicense的最好方法就是你好好写程序别乱来,按照规范写总不会错。而且现在在arduino这个插件已经更新的情况下,你可以不再需要用这个东西了,所以也没有必要专门再去添加一个这个文件和配置。

结语

所以懂了吗?这些东西非常简单但是大家一般都只是懒得找资料或者找到一些错误的资料罢了,光靠安装个插件就可以看出一个人不配做培训,这种人我只能说不配学这些东西。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-01-30 19:08:14  更:2022-01-30 19:09:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 10:32:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码