我是 C++ 新手,并试图在 Platformio 中编译简单的 arduino 项目。
platformio.ini 文件:
[platformio]
src_dir = .
lib_extra_dirs = .piolibdeps/, ../../
[env:nodemcuv2]
platform = espressif8266
board = nodemcuv2
framework = arduino
lib_deps =
# PubSubClient
painlessMesh
main.ino 文件:
#include <Arduino.h>
#include <painlessMesh.h>
void setup()
{
}
void loop()
{
}
应该很简单,但我收到下一个错误:
“ArduinoJson6100_100::DynamicJsonDocument”没有名为“nestingLimit”的成员
完整的编译器堆栈:
在文件夹 test4 中执行任务:platformio run <
处理nodemcuv2(平台:espressif8266;板子:nodemcuv2;框架:arduino)------------------------------------ -------------------------------------------------- ----------------------- 详细模式可以通过
-v, --verbose选项 CONFIGURATION 启用: https://docs.platformio.org/page/boards/espressif8266/nodemcuv2。 html PLATFORM: Espressif 8266 > NodeMCU 1.0 (ESP-12E Module) HARDWARE: ESP8266 80MHz 80KB RAM (4MB Flash) Converting main.ino Library Dependency Finder -> LDF MODES: FINDER(chain) COMPATIBILITY(soft) 收集了 35 个兼容库 扫描依赖... 依赖图 |-- 1.3.0 |
|-- 6.10.0 | |-- 3.0.2 | |-- 1.2.0 | | |-- 1.0 | |-- 1.0 编译.pioenvs/nodemcuv2/src/main.ino.cpp.o 生成LD脚本.pioenvs/nodemcuv2/ld/local.eagle.app.v6.common.ld 归档.pioenvs/nodemcuv2/libef5/libArduinoJson_ID64。 a 归档 .pioenvs/nodemcuv2/libca3/libTaskScheduler_ID721.a 索引 .pioenvs/nodemcuv2/libef5/libArduinoJson_ID64.a 索引 .pioenvs/nodemcuv2/libca3/libTaskScheduler_ID721.a 编译 .pioenvs/nodemcuv2/lib6c2/ESP8266WiFi/BearSSLHelpers。 .pioenvs/nodemcuv2/lib6c2/ESP8266WiFi/CertStoreBearSSL.cpp.o 编译 .pioenvs/nodemcuv2/lib6c2/ESP8266WiFi/ESP8266WiFi.cpp.o 编译 .pioenvs/nodemcuv2/lib6c2/ESP8266WiFi/ESP8266WiFiAP.cpp.o 编译 .pioenvs/nodemcuv2 lib6c2/ESP8266WiFi/ESP8266WiFiGeneric.cpp.o 正在编译。pioenvs/nodemcuv2/lib3f1/painlessMesh_ID1269/painlessMeshComm.cpp.o 编译.pioenvs/nodemcuv2/lib3f1/painlessMesh_ID1269/painlessMeshConnection.cpp.o 编译.pioenvs/nodemcuv2/lib3f1/painlessMesh_ID1269/painlessMeshDebug.cpp.o 编译lib.pioenvs/// /painlessMesh_ID1269/painlessMeshJson.cpp.o .piolibdeps/painlessMesh_ID1269/src/painlessMeshComm.cpp:在成员函数'String painlessMesh::buildMeshPackage(uint32_t,uint32_t,meshPackageType,String&)'中:.piolibdeps/painlessMesh_ID1269/src/painlessMeshComm.cpp: 68:25:错误:没有匹配函数调用'ArduinoJson6100_100::BasicJsonDocument::BasicJsonDocument()'DynamicJsonDocument jsonBuffer;^ .piolibdeps/painlessMesh_ID1269/src/painlessMeshComm.cpp:68:25:注意:候选人是:在文件中包含从 . piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/BasicJsonDocument.hpp:36:3: 注意:ArduinoJson6100_100::BasicJsonDocument::BasicJsonDocument(const ArduinoJson6100_100::BasicJsonDocument&) [with TAllocator = ArduinoJson6100_100::DefaultAllocator] BasicJsonDocument(const BasicJsonDocument) .piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/BasicJsonDocument.hpp:36:3:注意:候选人需要 1 个参数,提供 0 .piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/BasicJsonDocument.hpp:33:12:注意:ArduinoJson6100_100 ::BasicJsonDocument::BasicJsonDocument(size_t, TAllocator) [with TAllocator = ArduinoJson6100_100::DefaultAllocator; size_t = unsigned int] 显式 BasicJsonDocument(size_t capa, TAllocator allocator = TAllocator()) ^ 。piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/BasicJsonDocument.hpp:33:12:注意:候选人需要 2 个参数,提供 0 个 .piolibdeps/painlessMesh_ID1269/src/painlessMeshConnection.cpp:在成员函数 'void MeshConnection::handleMessage(String&, uint32_t)': .piolibdeps/painlessMesh_ID1269/src/painlessMeshConnection.cpp:543:25: 错误: 没有匹配函数调用'ArduinoJson6100_100::BasicJsonDocument::BasicJsonDocument()' DynamicJsonDocument jsonBuffer; ^ .piolibdeps/painlessMesh_ID1269/src/painlessMeshConnection.cpp:543:25:注意:候选人是:在来自 .piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/DynamicJsonDocument.hpp:7:0 的文件中,来自 .piolibdeps/ArduinoJson_ID64/ src/ArduinoJson.hpp:21,来自 .piolibdeps/ArduinoJson_ID64/src/ArduinoJson.h:9,来自 .piolibdeps/ArduinoJson_ID64/src/ArduinoJson.h:9 piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/BasicJsonDocument.hpp:43:3:注意:模板参数推导/替换失败:.piolibdeps/painlessMesh_ID1269/src/painlessMeshConnection.cpp:543:25:注意:候选人需要2个参数,0提供DynamicJsonDocument jsonBuffer;^ 在来自 .piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/DynamicJsonDocument.hpp:7:0、来自 .piolibdeps/ArduinoJson_ID64/src/ArduinoJson.hpp:21、来自 .piolibdeps/ArduinoJson_ID64/src/ArduinoJson.h 的文件中: 9、来自.piolibdeps/painlessMesh_ID1269/src/painlessMesh.h:12、来自.piolibdeps/painlessMesh_ID1269/src/painlessMeshConnection.cpp:9:.piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/BasicJsonDocument.hpp:36:3: 注意: ArduinoJson6100_100::BasicJsonDocument::BasicJsonDocument(const ArduinoJson6100_100:: BasicJsonDocument&) [with TAllocator = ArduinoJson6100_100::DefaultAllocator] BasicJsonDocument(const BasicJsonDocument& src) ^ .piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/BasicJsonDocument.hpp:36:3: 注意:候选人需要 1 个参数,0 提供 .piolibdeps/ArduinoJson_ID64 /src/ArduinoJson/Document/BasicJsonDocument.hpp:33:12: 注意:ArduinoJson6100_100::BasicJsonDocument::BasicJsonDocument(size_t, TAllocator) [with TAllocator = ArduinoJson6100_100::DefaultAllocator; size_t = unsigned int] 显式 BasicJsonDocument(size_t capa, TAllocator allocator = TAllocator()) ^ .piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/BasicJsonDocument.hpp:33:12:注意:候选人需要 2 个参数,提供 0 .piolibdeps/ painlessMesh_ID1269/src/painlessMeshConnection.cpp:544:16: 错误:'ArduinoJson6100_100:: DynamicJsonDocument' 没有名为 'nestingLimit' 的成员 jsonBuffer.nestingLimit = 255; ^ * [.pioenvs/nodemcuv2/lib3f1/painlessMesh_ID1269/painlessMeshComm.cpp.o] 错误 1 [.pioenvs/nodemcuv2/lib3f1/painlessMesh_ID1269/painlessMeshConnection.cpp.o] 错误 1 ============ ============================= [错误] 耗时 10.54 秒 ================ ======================== 终端进程以退出代码终止:1
我究竟做错了什么?
谢谢!