如何修复 PlatformIO ESP8266/ESP32 fatal error: SPI.h: No such file or directory

问题:

你正在尝试为 ESP8266 或 ESP32 编译 PlatformIO 应用程序,但你看到类似这样的错误消息

error.txt
In file included from .pio/libdeps/d1_mini/TFT_eSPI/TFT_eSPI.cpp:17:0:
.pio/libdeps/d1_mini/TFT_eSPI/TFT_eSPI.h:32:17: fatal error: SPI.h: No such file or directory

*************************************************************
* 寻找 SPI.h 依赖?查看我们的库注册表!
*
* CLI  > platformio lib search "header:SPI.h"
* Web  > https://platformio.org/lib/search?query=header:SPI.h
*
*************************************************************

 #include <SPI.h>

此问题在使用 TFT_eSPI 库时很常见。

解决方案

首先,确保你的 platformio.ini 有

platformio.ini
framework = arduino

如果你使用不同的 frameworkSPI.h 将不可用,因为它是 Arduino 框架的一部分!

其次,将此行添加到你的 platformio.ini

platformio_ldf.ini
lib_ldf_mode = deep+

并重新编译你的源代码。这将重新配置库依赖查找器ldf)以查找依赖库的依赖:

dependency_graph.txt
依赖图
|-- <TFT_eSPI> 2.3.52
|   |-- <SPI> 1.0

Check out similar posts by category: ESP8266/ESP32, PlatformIO