You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编译ThingsBoard示例代码提示TBPubSubClient.h缺失的求助

解决ThingsBoard Arduino示例编译错误:找不到TBPubSubClient.h

问题概述

编译ThingsBoard官方Arduino示例代码时出现头文件缺失错误,已尝试重新安装依赖库、确认Windows用户名为英文、重装Arduino IDE等操作,问题仍未解决。

编译错误信息

In file included from C:\Users\YAZILIMM\AppData\Local\Temp.arduinoIDE-unsaved2023913-7500-15j0apg.1lt4\0002-arduino_rpc\0002-arduino_rpc.ino:9:
d:\Belgeler\Arduino\libraries\ThingsBoard\src/Arduino_MQTT_Client.h:10:10: fatal error: TBPubSubClient.h: No such file or directory
#include <TBPubSubClient.h>
^~~~~~~~~~~~~~~~~~
compilation terminated.

exit status 1

Compilation error: exit status 1

解决步骤

1. 确保ThingsBoard库完整安装

TBPubSubClient.h是ThingsBoard库的内部文件,若库下载不完整会导致缺失:

  • 打开Arduino IDE的库管理器,找到ThingsBoard库,先移除再重新安装最新版本
  • 若库管理器安装仍有问题,手动下载库的完整源码,解压到Arduino的libraries文件夹中替换原有文件

2. 移除多余的库引用

Arduino_MQTT_Client.h属于ThingsBoard库的组成部分,无需单独引入,删除代码中的#include <Arduino_MQTT_Client.h>,仅保留#include <ThingsBoard.h>即可。

3. 修正开发板匹配与代码逻辑

原代码开头的条件编译存在语法错误,且需确保开发板选择与代码兼容:

  • 在Arduino IDE工具菜单中,选择你实际使用的开发板(ESP8266/ESP32/Pico等)
  • 修正代码开头的条件编译部分,补全#ifdef ESP8266:
#ifdef ESP8266
#include <ESP8266WiFi.h>
#define THINGSBOARD_ENABLE_PROGMEM 0
#elif defined(ESP32) || defined(RASPBERRYPI_PICO) || defined(RASPBERRYPI_PICO_W)
#include <WiFi.h>
#endif

4. 清理IDE缓存

  • 关闭Arduino IDE,删除C:\Users\YAZILIMM\AppData\Local\Temp下所有以arduinoIDE-开头的临时文件夹
  • 重新打开IDE,加载代码后再次编译

内容的提问来源于stack exchange,提问作者Ali Riza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 21:25:01