【发布时间】:2019-03-30 06:25:29
【问题描述】:
我是 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' 没有名为的成员 '嵌套限制'
完整的编译器堆栈:
在test4文件夹中执行任务:platformio run
处理nodemcuv2(平台:espressif8266;板子:nodemcuv2; 框架:arduino) -------------------------------------------------- -------------------------------------------------- -------- 详细模式可以通过
-v, --verbose选项配置启用: https://docs.platformio.org/page/boards/espressif8266/nodemcuv2.html 平台:乐鑫 8266 > NodeMCU 1.0(ESP-12E 模块)硬件: ESP8266 80MHz 80KB RAM (4MB Flash) 转换 main.ino 库 依赖查找器-> LDF 模式: 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.cpp.o 编译 .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/lib6c2/ESP8266WiFi/ESP8266WiFiMulti.cpp.o 编译 .pioenvs/nodemcuv2/lib6c2/ESP8266WiFi/ESP8266WiFiSTA-WPS.cpp.o 编译.pioenvs/nodemcuv2/lib6c2/ESP8266WiFi/ESP8266WiFiSTA.cpp.o 编译.pioenvs/nodemcuv2/lib6c2/ESP8266WiFi/ESP8266WiFiScan.cpp.o 编译.pioenvs/nodemcuv2/lib6c2/ESP8266WiFi/WiFiClient.cpp.o 编译 .pioenvs/nodemcuv2/lib6c2/ESP8266WiFi/WiFiClientSecureAxTLS.cpp.o 编译 .pioenvs/nodemcuv2/lib6c2/ESP8266WiFi/WiFiClientSecureBearSSL.cpp.o 编译.pioenvs/nodemcuv2/lib6c2/ESP8266WiFi/WiFiServer.cpp.o 编译 .pioenvs/nodemcuv2/lib6c2/ESP8266WiFi/WiFiServerSecureAxTLS.cpp.o 编译 .pioenvs/nodemcuv2/lib6c2/ESP8266WiFi/WiFiServerSecureBearSSL.cpp.o 编译.pioenvs/nodemcuv2/lib6c2/ESP8266WiFi/WiFiUdp.cpp.o 编译 .pioenvs/nodemcuv2/lib129/ESPAsyncTCP_ID305/AsyncPrinter.cpp.o 编译 .pioenvs/nodemcuv2/lib129/ESPAsyncTCP_ID305/ESPAsyncTCP.cpp.o 编译 .pioenvs/nodemcuv2/lib129/ESPAsyncTCP_ID305/ESPAsyncTCPbuffer.cpp.o 归档 .pioenvs/nodemcuv2/lib6c2/libESP8266WiFi.a 索引 .pioenvs/nodemcuv2/lib6c2/libESP8266WiFi.a 编译 .pioenvs/nodemcuv2/lib129/ESPAsyncTCP_ID305/SyncClient.cpp.o 编译 .pioenvs/nodemcuv2/lib129/ESPAsyncTCP_ID305/tcp_axtls.c.o 编译 .pioenvs/nodemcuv2/lib3f1/painlessMesh_ID1269/TaskScheduler.cpp.o 编译 .pioenvs/nodemcuv2/lib3f1/painlessMesh_ID1269/painlessMesh.cpp.o 编译 .pioenvs/nodemcuv2/lib3f1/painlessMesh_ID1269/painlessMeshAP.cpp.o 归档 .pioenvs/nodemcuv2/lib129/libESPAsyncTCP_ID305.a 索引 .pioenvs/nodemcuv2/lib129/libESPAsyncTCP_ID305.a 编译 .pioenvs/nodemcuv2/lib3f1/painlessMesh_ID1269/painlessMeshComm.cpp.o 编译 .pioenvs/nodemcuv2/lib3f1/painlessMesh_ID1269/painlessMeshConnection.cpp.o 编译 .pioenvs/nodemcuv2/lib3f1/painlessMesh_ID1269/painlessMeshDebug.cpp.o 编译 .pioenvs/nodemcuv2/lib3f1/painlessMesh_ID1269/painlessMeshJson.cpp.o .piolibdeps/painlessMesh_ID1269/src/painlessMeshComm.cpp:在成员中 函数'字符串 painlessMesh::buildMeshPackage(uint32_t, uint32_t, 网格包类型,字符串&)': .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/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/painlessMeshComm.cpp:8: .piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/BasicJsonDocument.hpp:50:3: 笔记: ArduinoJson6100_100::BasicJsonDocument::BasicJsonDocument(ArduinoJson6100_100::VariantRef) [使用 TAllocator = ArduinoJson6100_100::DefaultAllocator] BasicJsonDocument(VariantRef src) ^ .piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/BasicJsonDocument.hpp:50:3: 注意:候选人期望 1 个参数,提供 0 个参数 .piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/BasicJsonDocument.hpp:43:3: 注:模板 ArduinoJson6100_100::BasicJsonDocument::BasicJsonDocument(const T&,类型名 ArduinoJson6100_100::enable_if::value>::type*) BasicJsonDocument(const T& src, ^ .piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/BasicJsonDocument.hpp:43:3: 注意:模板参数扣除/替换失败: .piolibdeps/painlessMesh_ID1269/src/painlessMeshComm.cpp:68:25:注意: 候选人需要 2 个参数,0 提供 DynamicJsonDocument json缓冲区; ^ 在包含的文件中 .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/painlessMeshComm.cpp:8: .piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/BasicJsonDocument.hpp:36:3: 笔记: ArduinoJson6100_100::BasicJsonDocument::BasicJsonDocument(const ArduinoJson6100_100::BasicJsonDocument&) [与 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 分配器 = 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/painlessMesh_ID1269/src/painlessMesh.h:12,来自 .piolibdeps/painlessMesh_ID1269/src/painlessMeshConnection.cpp:9: .piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/BasicJsonDocument.hpp:50:3: 笔记: ArduinoJson6100_100::BasicJsonDocument::BasicJsonDocument(ArduinoJson6100_100::VariantRef) [使用 TAllocator = ArduinoJson6100_100::DefaultAllocator] BasicJsonDocument(VariantRef src) ^ .piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/BasicJsonDocument.hpp:50:3: 注意:候选人期望 1 个参数,提供 0 个参数 .piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/BasicJsonDocument.hpp:43:3: 注:模板 ArduinoJson6100_100::BasicJsonDocument::BasicJsonDocument(const T&,类型名 ArduinoJson6100_100::enable_if::value>::type*) BasicJsonDocument(const T& src, ^ .piolibdeps/ArduinoJson_ID64/src/ArduinoJson/Document/BasicJsonDocument.hpp:43:3: 注意:模板参数扣除/替换失败: .piolibdeps/painlessMesh_ID1269/src/painlessMeshConnection.cpp:543:25: 注意:候选人需要 2 个参数,0 提供 DynamicJsonDocument json缓冲区; ^ 在包含的文件中 .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&) [与 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 分配器 = 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
我做错了什么?
谢谢!
【问题讨论】:
标签: c++ arduino esp8266 nodemcu platformio