неопределенная ссылка на `longjmp ‘при использовании библиотеки для регулярных выражений в Arduino IDE

Я получаю эту ошибку при использовании Библиотека регулярных выражений Ника Гаммона. Ошибка ниже:

library / Regexp / Regexp.cpp.o :(. text._ZL5errorc + 0x4): неопределенная ссылка на `longjmp '
библиотеки / Regexp / Regexp.cpp.o: в функции `ошибка ':
/Users/jaiprak/projects/Arduino/libraries/Regexp/Regexp.cpp:640: неопределенная ссылка на longjmp
библиотеки / Regexp / Regexp.cpp.o: в функции `max_expand ':
/Users/jaiprak/projects/Arduino/libraries/Regexp/Regexp.cpp:640: неопределенная ссылка на `setjmp '
library / Regexp / Regexp.cpp.o: В функции `MatchState :: Match (char const *, unsigned int) ':
/Users/jaiprak/projects/Arduino/libraries/Regexp/Regexp.cpp:640: неопределенная ссылка на `setjmp '
collect2: error: ld вернул 1 состояние выхода
статус выхода 1
Ошибка компиляции для платы Generic ESP8266 Module.

И это мой код Arduino:

#include <Regexp.h>

// called for each match
void match_callback  (const char * match,          // matching string (not null-terminated)
const unsigned int length,   // length of matching string
const MatchState & ms)      // MatchState in use (to get captures)
{
char cap [10];   // must be large enough to hold captures

Serial.print ("Matched: ");
Serial.write ((byte *) match, length);
Serial.println ();

for (byte i = 0; i < ms.level; i++)
{
Serial.print ("Capture ");
Serial.print (i, DEC);
Serial.print (" = ");
ms.GetCapture (cap, i);
Serial.println (cap);
}  // end of for each capture

}  // end of match_callbackvoid setup ()
{
Serial.begin (115200);
Serial.println ();
unsigned long count;

// what we are searching (the target)
char buf [100] = "The quick brown fox jumps over the lazy wolf";

// match state object
MatchState ms (buf);

// original buffer
Serial.println (buf);

// search for three letters followed by a space (two captures)
count = ms.GlobalMatch ("(%a+)( )", match_callback);

// show results
Serial.print ("Found ");
Serial.print (count);            // 8 in this case
Serial.println (" matches.");}  // end of setup

void loop () {}

1

Решение

setjmp а также longjump являются обычной частью libc, которая не используется ESP8266 ядро ​​для Arduino.

Эта проблема описана в # 910. Комментарий предлагает реализовать его в libc_replacements.c не указав, как это может быть достигнуто.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]