0

我是 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

我究竟做错了什么?

谢谢!

4

1 回答 1

0

在库源码中解决:https ://gitlab.com/painlessMesh/painlessMesh/issues/253

作者评论:

感谢您的报告。这应该在最新版本 (1.3.1) 中修复。如果您还有问题,请告诉我

于 2019-04-01T14:27:09.613 回答