При очередном обновлении библиотечки ArduinoJson компилятор неожиданно выдал ошибку:
ArduinoJson requires C++11 or newer. Configure your compiler for C++11 or downgrade ArduinoJson to 6.20.
В головном файле библиотеки нашел такую конструкцию:
#if __cplusplus < 201103L && (!defined(_MSC_VER) || _MSC_VER < 1910)
# error ArduinoJson requires C++11 or newer. Configure your compiler for C++11 or downgrade ArduinoJson to 6.20.
#endif
В данном проекте я пользуюсь толучейном для микроконтроллеров ASR605* (CubeCell) и __cplusplus 199711, то есть стоит старенький С++98/03.
Доунгрейт библиотеки до версии 6.20.1 спасает ситуацию, но как с этим жить дальше?
Используя ArduinoJson в других проектах хочется иметь последнюю версию (там разработка не стоит на месте)
Как можно использовать разные версии данной библиотеке одновременно?
Перенести старую библиотеку в папку проекта не вариант, так как там все хедеры ссылаются на общий каталог библиотек: #include <***.h> и компилятор будет ругаться на несколько версий одного и того же файла *.h
По этой же причине не могу установить две библиотеки в общей паке библиотек.
Есть какой-то разумный выход в данной ситуации?
По той же причине не
В библиотеке больше сотни файлов *.hpp и в каждом по несколько строк типа:
#include <ArduinoJson/Namespace.hpp>
Так что нужно внутри библиотеки поменять каталог ArduinoJson на ArduinoJsonOld, и во всех файлах изменить соответствующие строки. В крайнем случае так и сделаю.
Но может кто-то знает проще путь?
10мс для микроконтроллера - это очень хорошо. Но главное, чтобы они оптимизировали использование памяти, исправляли утечки, и прочие баги.
Рано или поздно, после обновления Arduino IDE старая версия перестанет работать и появится новая надпись:
Поставлю вопрос по другому. Где взять портабельную версию Arduino 2.3.3 ?
Та что лежит у них на сайте в zip-архиве работает со стандартными путями
Да еще и запускает кучу бэк-процессов, которым без разницы, портабельная версия или исталлированная
Всем спасибо за ответы.
Меньшим злом получилось создание библиотеки ArduinoJson_6_20 с контекстным изменением путей внутри всех файлов (Нотепад++ рулит!)
Видимо следующий этап - это переход на Platdormio. Давно смотрю в эту сторону.
Очень не хватает установки Arduino в докер-контейнер )))