Использование разных версий ArduinoJson

При очередном обновлении библиотечки 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 старая версия перестанет работать и появится новая надпись:

Downgrade Arduino Ide Version ti 1.8.XXX

или что-нибудь подобное

установить отдельную портабле интсталляцию Ардуино ИДЕ и в ней установить старую библиотеку

Можете попробовать platformio, и использовать в любом проекте любые версии библиотек, изменяя лишь одну строку в файле настроек

А как отучить ее от
c:\Users<Пользователь>.arduinoIDE
c:\Users<Пользователь>\Documents\Arduino\

???

Portable она и на то делается что бы не знать стандартные пути а иметь свои собственные.

в портабле все пути другие

Только IDE 2 так вроде и не научили быть портабельной…

Самый правильный вариант - проапгрейдить свой код для работы с новой версией библиотеки

2 лайка

Там ошибка не в моем коде. А в старом компиляторе для ASR6052, поставляемом производителем, с которым не желает работать ардуина

Поставлю вопрос по другому. Где взять портабельную версию Arduino 2.3.3 ?
Та что лежит у них на сайте в zip-архиве работает со стандартными путями
Да еще и запускает кучу бэк-процессов, которым без разницы, портабельная версия или исталлированная

Да я уже понял. Ну, если не вариант обновить компилятор, то тогда только портабельная ардуина

Почему именно 2.3.3? 1.8.19 не устроит?

Всем спасибо за ответы.
Меньшим злом получилось создание библиотеки ArduinoJson_6_20 с контекстным изменением путей внутри всех файлов (Нотепад++ рулит!)
Видимо следующий этап - это переход на Platdormio. Давно смотрю в эту сторону.
Очень не хватает установки Arduino в докер-контейнер )))

создать внутри её каталог с именем portable, она пути туда перестроит

Это называется “дурная голова рукам покоя не дает”
Чем вас вариант с портабле не устроил?

Круто! Спасибо не знал. Это где-то документировано?