mirror of
https://github.com/bblanchon/ArduinoJson.git
synced 2025-09-25 22:40:56 +02:00
Updated Compatibility issues (markdown)
@@ -1,106 +1,16 @@
|
||||
<!-- MarkdownTOC depth=3 autolink=true bracket=round lowercase_only_ascii=true -->
|
||||
|
||||
- [Arduino Library Manager doesn't list the latest versions of ArduinoJson](#arduino-library-manager-doesnt-list-the-latest-versions-of-arduinojson)
|
||||
- [CodeBender](#codebender)
|
||||
- [Arduino Zero, mkr1000 and all boards based on SAMD21](#arduino-zero-mkr1000-and-all-boards-based-on-samd21)
|
||||
- [Warning: ignoring packed attribute because of unpacked non-POD field](#warning-ignoring-packed-attribute-because-of-unpacked-non-pod-field)
|
||||
- [Error: undefined reference to `__cxa_guard_acquire` and `__cxa_guard_release`](#error-undefined-reference-to-cxaguardacquire-and-cxaguardrelease)
|
||||
|
||||
<!-- /MarkdownTOC -->
|
||||
|
||||
|
||||
Despite the effort on writing portable code, there are compatibility issues with a few platform.
|
||||
|
||||
## Arduino 1.0.x, Energia, Stino and other alternative IDEs
|
||||
|
||||
Energia is a fork or Arduino IDE for TI devices. It has not been updated for the new Arduino library layout.
|
||||
|
||||
Until this gets fix, you need to download the "old-layout" package:
|
||||
|
||||
* ~~[ArduinoJson-v5.0.7.zip](https://github.com/bblanchon/ArduinoJson/releases)~~
|
||||
* [ArduinoJson-v5.0.7-old-layout.zip](https://github.com/bblanchon/ArduinoJson/releases)
|
||||
|
||||
For Arduino 1.0.x, see issue [#189](https://github.com/bblanchon/ArduinoJson/issues/189).
|
||||
|
||||
For energia, see issues [#43](https://github.com/bblanchon/ArduinoJson/issues/43), [#97](https://github.com/bblanchon/ArduinoJson/issues/97), [#114](https://github.com/bblanchon/ArduinoJson/issues/114) and [#116](https://github.com/bblanchon/ArduinoJson/issues/116)
|
||||
|
||||
For Stino, see issues [#74](https://github.com/bblanchon/ArduinoJson/issues/74) and [#139](https://github.com/bblanchon/ArduinoJson/issues/139).
|
||||
|
||||
## ESP8266
|
||||
|
||||
Are also conserned all board based on ESP8266: Adafruit HUZZAH, SparkFun Thing, etc.
|
||||
|
||||
There is a known bug in [Arduino core for ESP8266 WiFi chip](https://github.com/esp8266/Arduino) that has been fixed on [August 25th 2015](https://github.com/esp8266/Arduino/commit/47b7bcbeb5d8640205a4d9c2acd8b3817fd3caaa).
|
||||
|
||||
Please make sure you're using a newer version before posting a new issue.
|
||||
~~As I'm writing theses lines, you need to use the "staging" version because the "stable" version is too old.~~
|
||||
|
||||
See issues [#101](https://github.com/bblanchon/ArduinoJson/issues/101), [#125](https://github.com/bblanchon/ArduinoJson/issues/125), [#155](https://github.com/bblanchon/ArduinoJson/issues/155) and [#185](https://github.com/bblanchon/ArduinoJson/issues/185) and [#233](https://github.com/bblanchon/ArduinoJson/issues/233).
|
||||
|
||||
## Intel Edison: compilation error
|
||||
|
||||
This is a known bug in [Arduino core for Intel Edison](https://github.com/01org/corelibs-edison).
|
||||
A [pull request](https://github.com/01org/corelibs-edison/pull/18) has been submitted ~~but is still waiting for approval.~~
|
||||
|
||||
Until this gets fixed, just insert the following line in your local `cores/arduino/WString.h`:
|
||||
|
||||
const char * c_str() const { return buffer; }
|
||||
|
||||
On Windows, the file is likely to be located here:
|
||||
|
||||
```
|
||||
%LOCALAPPDATA%\Arduino15\packages\Intel\hardware\i686\1.6.2+1.0\cores\arduino\WString.h
|
||||
```
|
||||
|
||||
See issues [#123](https://github.com/bblanchon/ArduinoJson/issues/123) and [#138](https://github.com/bblanchon/ArduinoJson/issues/138)
|
||||
|
||||
## Intel Galileo: compilation error
|
||||
|
||||
This is a known bug in [Arduino core for Intel Galileo](https://github.com/01org/corelibs-galileo).
|
||||
A [pull request](https://github.com/01org/corelibs-galileo/pull/29) has been submitted ~~but is still waiting for approval~~.
|
||||
|
||||
Until this gets fixed, just insert the following line in your local `cores/arduino/WString.h`:
|
||||
|
||||
const char * c_str() const { return buffer; }
|
||||
|
||||
On Windows, the file is likely to be located here:
|
||||
|
||||
```
|
||||
%LOCALAPPDATA%\Arduino15\packages\Intel\hardware\i586\1.6.7+1.0\cores\arduino\WString.h
|
||||
```
|
||||
|
||||
on mac
|
||||
|
||||
```
|
||||
~/Library/Arduino15/packages/Intel/hardware/i586/1.6.7+1.0/cores/arduino/WString.h
|
||||
```
|
||||
|
||||
See issue [#299](https://github.com/bblanchon/ArduinoJson/issues/299).
|
||||
|
||||
## RedBearLab boards: compilation error
|
||||
|
||||
This is a known bug in [Arduino core for BLE Nano](https://github.com/RedBearLab/nRF51822-Arduino).
|
||||
|
||||
A [pull request](https://github.com/RedBearLab/nRF51822-Arduino/pull/57) has been submitted ~~but is still waiting for approval.~~
|
||||
|
||||
Until this gets fixed, just insert the following line in your local `cores/arduino/WString.h`:
|
||||
|
||||
const char * c_str() const { return buffer; }
|
||||
|
||||
On Windows, the file is likely to be located here:
|
||||
|
||||
```
|
||||
%LOCALAPPDATA%\Arduino15\packages\RedBearLab\hardware\nRF51822\1.0.5\cores\RBL_nRF51822\WString.h
|
||||
```
|
||||
|
||||
See issue [#222](https://github.com/bblanchon/ArduinoJson/issues/222)
|
||||
|
||||
## Teensy, and other Arduino compatible boards
|
||||
|
||||
Some platforms need some time to initialize the serial port.
|
||||
In that case, you need to add a `delay(1000)` in the `setup()` function.
|
||||
|
||||
See issue [#112](https://github.com/bblanchon/ArduinoJson/issues/112).
|
||||
|
||||
## Known problems with Arduino IDE 1.6.6
|
||||
|
||||
Arduino IDE 1.6.6 bug [#4075](https://github.com/arduino/Arduino/issues/4075) makes the build fail with the following error:
|
||||
|
||||
```
|
||||
error: 'namespaceArduinoJson' does not name a type
|
||||
```
|
||||
|
||||
You need to upgrade to 1.6.7.
|
||||
|
||||
## Arduino Library Manager doesn't list the latest versions of ArduinoJson
|
||||
|
||||
This is a very common issue.
|
||||
@@ -114,31 +24,13 @@ For example, on Windows, you need to delete:
|
||||
|
||||
You don't even need to close Arduino, just re-open the library manager.
|
||||
|
||||
## Visual Micro / Visual Studio
|
||||
|
||||
Due to the non-standard library structure, ArduinoJson won't compile for older versions of Visual Micro - the solution is simply to upgrade to Visual Micro from January 2016 or later.
|
||||
|
||||
See issue [#238](https://github.com/bblanchon/ArduinoJson/issues/238).
|
||||
|
||||
## WifiManager
|
||||
|
||||
There is a [known bug](https://github.com/tzapu/WiFiManager/commit/44e828e77a2454a38371f7d5fb64424acebeb676) in the WifiManager library < 0.12.
|
||||
|
||||
This caused a compilation error in ArduinoJson:
|
||||
|
||||
ArduinoJson/include/ArduinoJson/Internals/../Internals/../Polyfills/isNaN.hpp:29:17: error: 'isnan' was not declared in this scope
|
||||
|
||||
To fix the issue, simply upgrade WifiManager to >= 0.12 or ArduinoJson >= 5.6.2
|
||||
|
||||
See issue [#284](https://github.com/bblanchon/ArduinoJson/issues/284)
|
||||
|
||||
## CodeBender
|
||||
|
||||
For some reason, it's not possible to use ArduinoJson with CodeBender.
|
||||
|
||||
See discussion here: http://feedback.codebender.cc/forums/280538-library-requests/suggestions/7238254-arduinojson-support
|
||||
|
||||
## Arduino Zero and mkr1000 (all boards based on SAMD21)
|
||||
## Arduino Zero, mkr1000 and all boards based on SAMD21
|
||||
|
||||
There is a bug in [Arduino SAMD core](https://github.com/arduino/ArduinoCore-samd) that make `prettyPrintTo()` fail (issue [#327](https://github.com/bblanchon/ArduinoJson/issues/327))
|
||||
|
||||
@@ -154,7 +46,7 @@ They are located here on Windows:
|
||||
%LOCALAPPDATA%\Arduino15\packages\arduino\hardware\samd\1.6.6\cores\arduino\USB
|
||||
```
|
||||
|
||||
## GCC warning: ignoring packed attribute because of unpacked non-POD field
|
||||
## Warning: ignoring packed attribute because of unpacked non-POD field
|
||||
|
||||
If you pass the flag `--fpack-struct` to the compiler, it will generate the following warning:
|
||||
|
||||
@@ -166,3 +58,11 @@ No solution has been found so far: you need to remove that flag if you want to g
|
||||
|
||||
See issue [#255](https://github.com/bblanchon/ArduinoJson/issues/255)
|
||||
|
||||
## Error: undefined reference to `__cxa_guard_acquire` and `__cxa_guard_release`
|
||||
|
||||
You need to add the following flag:
|
||||
|
||||
> `-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.
|
||||
>
|
||||
See issue [#356](https://github.com/bblanchon/ArduinoJson/issues/356).
|
||||
|
Reference in New Issue
Block a user