2016-08-05 17 views
2

私はスケッチに取り組んでおり、私はArduinoJSONを使用しています。私はこれを通過するかもしれないと思って、人々がこのエラーを見たかどうかを確認します。ここでArduinoJSON `__cxa_guard_acquire 'への未定義の参照

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; 
} 

答えて

4

以下のコンパイルフラグを試してみてください。

-fno-threadsafe-statics

地元静のスレッドセーフな初期化のためのC++ ABIで指定されたルーチンを使用して余分なコードを放出しないでください。このオプションを使用すると、スレッドセーフである必要のないコードでコードサイズをわずかに減らすことができます。

問題#356#361

を参照してください。
関連する問題