Обрезка строки .remove() не компилится в Debian

Данный код не компилируется в Debian, но успешно компилиться под windows 10. Arduino IDE везде последняя
Ошибка в строке:
i_key_str.remove(temp_str_l); //
sketch_apr9a.ino:198:17: error: ‘class String’ has no member named ‘remove’

    if (i_key_str.endsWith("2") == true) //
    {
      temp_str_l=i_key_str.length()-1; // – в
      i_key_str.remove(temp_str_l); //
      Serial.println(i_key_str); //
    }

Значит, они разные (хоть и обе последние). В одной есть метод remove, а в другой - нет. Что тут сделаешь?

Тут нет

Тут есть

Как-то слабо верится. Код класса String не зависит от платформы, на которой запускается ИДЕ (то есть линукс или винда) - зависит исключительно от платформы, под которую компилируется скетч - то есть от микроконтроллера

А плата какая? Под один и тот же МК компилируете на линуксе и винде?

Это да, но этот метод появился не так давно. Возможно, у него версии последние для своих платформ, но всё равно одна старее другой. Он же нам версии не сообщил - секретность!

Плата arduino uno.
На win и linux обновил IDE.
На Debian вылезла ошибка

Вероятно криво обновилось.
Просто сделайте тоже самое без использования remove() да и все.

замените эту строчку на
i_key_str = i_key_str.substring(0, temp_str_l);
результат не должен измениться

2 лайка