c - ArduinoJSON 未定义对 `__cxa_guard_acquire' 的引用

我正在绘制草图,我正在使用 ArduinoJSON。我想我可能会解决这个问题,看看人们是否看到了这个错误。

WifiNest.cpp.o:(.text._ZN11ArduinoJson9JsonArray7invalidEv[_ZN11ArduinoJson9JsonArray7invalidEv]+0x8): undefined reference to `__cxa_guard_acquire'
WifiNest.cpp.o:(.text._ZN11ArduinoJson9JsonArray7invalidEv[_ZN11ArduinoJson9JsonArray7invalidEv]+0xc): undefined reference to `__cxa_guard_release'
WifiNest.cpp.o: In function `ArduinoJson::JsonArray::invalid()':
C:\Program Files (x86)\Arduino/WifiNest.ino:156: undefined reference to `__cxa_guard_acquire'
C:\Program Files (x86)\Arduino/WifiNest.ino:156: undefined reference to `__cxa_guard_release'
WifiNest.cpp.o: In function `ArduinoJson::JsonObject::invalid()':
C:\Program Files (x86)\Arduino/WifiNest.ino:156: undefined reference to `__cxa_guard_acquire'
C:\Program Files (x86)\Arduino/WifiNest.ino:156: undefined reference to `__cxa_guard_release'
collect2.exe: error: ld returned 1 exit status
Error compiling.

这是我创建 jsonArray 对象的 Arduino 代码的一部分:

char jsonArray [result.length()+1];
result.toCharArray(jsonArray,sizeof(jsonArray));
jsonArray[result.length() + 1] = '\0';

DynamicJsonBuffer json_buf;
JsonObject &root = json_buf.parseObject(jsonArray);
if (!root.success())
{
    Serial.println("parseObject() failed");
}

这里是 JSONArray 无效函数:

static JsonArray &invalid() {
    static JsonArray instance(NULL);
    return instance;
}

这里是 JSONObject 无效函数:

// Returns a reference an invalid JsonObject.
// This object is meant to replace a NULL pointer.
// This is used when memory allocation or JSON parsing fail.
static JsonObject& invalid() {
    static JsonObject instance(NULL);
    return instance;
}

最佳答案

尝试使用以下编译标志:

-fno-threadsafe-statics

Do not emit the extra code to use the routines specified in the C++ ABI for thread-safe initialization of local statics. You can use this option to reduce code size slightly in code that doesn't need to be thread-safe.

查看问题 #356和 #361

关于c - ArduinoJSON 未定义对 `__cxa_guard_acquire' 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38779413/

相关文章:

php - 如何检查字符串是否包含电子邮件?

file - 在同一区域将大文件从 S3 下载到 EC2 的最快方法是什么?

sql - 计算 pl/sql 中游标的行数

elixir - 为什么 is_atom(nil) 在 elixir 中等于 true?

node.js - 应用程序使用(验证器()); ^ 类型错误 : validator is not

module - 如何导入本地模块?

c - 根据 AMD64 ABI,什么样的 C11 数据类型是数组

php - 如何使用php将html代码转换为png图像

amazon-web-services - 将记录写入 Aurora 数据库实例时触发 AWS La

maven - 缺少神器 soapui :SoapUI:jar:5. 2.1