2016-09-15 166 views
1

我在使用Nick Gammon's Regexp library时出现此错误。下面的错误是:在Arduino IDE中使用正则表达式库时对'longjmp'的未定义引用

 
libraries/Regexp/Regexp.cpp.o:(.text._ZL5errorc+0x4): undefined reference to `longjmp' 
libraries/Regexp/Regexp.cpp.o: In function `error': 
/Users/jaiprak/projects/Arduino/libraries/Regexp/Regexp.cpp:640: undefined reference to `longjmp' 
libraries/Regexp/Regexp.cpp.o: In function `max_expand': 
/Users/jaiprak/projects/Arduino/libraries/Regexp/Regexp.cpp:640: undefined reference to `setjmp' 
libraries/Regexp/Regexp.cpp.o: In function `MatchState::Match(char const*, unsigned int)': 
/Users/jaiprak/projects/Arduino/libraries/Regexp/Regexp.cpp:640: undefined reference to `setjmp' 
collect2: error: ld returned 1 exit status 
exit status 1 
Error compiling for board 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_callback 


void 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() {} 

回答