在ESP32开发中出现的wifi.h路径错误和未定义的问题

出现的问题

在使用vscode进行esp32的开发的时候,出现了这种异常
在这里插入图片描述

很奇怪对吧(至少我自己觉得十分奇怪),我明明引用的确实就是官方库的<WIFI.h>
,按照标准的demo写的代码,为什么会出现变量未定义的问题,在Arduino Ide中甚至还出现了找不到路径的问题。

E:\xxxxx\wifiManner.c:2:10: fatal error: WIFI.h: No such file or directory
 #include <WIFI.h>
          ^~~~~~~~
compilation terminated.

exit status 1

Compilation error: WIFI.h: No such file or directory

大受震撼,然后我翻看了几乎全网的资料,也很少对这方面的问题进行描述的(可能确实是很小白的问题了),所以写一个博客告诫自己也顺便给同遇到这种问题的小白们。

分析过程

既然网上找不到资料,那我就只能自己推了(虽然并不算十分复杂)。首先,我们已经引入了一个(假的)wifi.h库,那我们就去查一查这个库的源码吧。
在这里插入图片描述

打开看到了这样的注释,大致的意思是,这里声明的只是一些内部的API,大多是被其他包或者底层调用的,不建议普通开发者使用。

那我为什么会调用到这个包。。
然后我没辙了,直接大海捞鱼吧,通过everything工具查找我的电脑里全部的叫WIFI.h的文件。诶,还真发现点东西。有一个库是WIFI.h,而另一个库是wifi.h
在这里插入图片描述
然后就发现是c语言的Include path默认解析到了wifi.h的那个路径,所以我们就算写WIFI.h也一样无法使用。

解决方法

发现了问题那解决自然很简单,在Vscode里,在Microsoft C/C++ Extension的设置中找到Include path选项,把其中的:

C:\Users\你的用户名\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\tools\sdk\esp32s2\include\esp_wifi\include\esp_private

替换为

C:\Users\你的用户名\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\libraries\WiFi\src

这只是个示例!!!具体的文件路径需要你自己在电脑中查找,基本上也都在是Appdata中,一步步往下找就可以找到了

完成了之后,在vscode中就不会有WIFI未定义的问题了
在这里插入图片描述
然后这里并不能解决fatal error: WIFI.h: No such file or directory的问题。嗯。。。然后我去翻了下demo,发现了是大小写的问题。正确的导入是

#include <WiFi.h>

猜你喜欢

转载自blog.csdn.net/hexia233332/article/details/136984663
今日推荐