avr-stl icon indicating copy to clipboard operation
avr-stl copied to clipboard

exit status 1 Error compiling for board Arduino/Genuino Uno

Open pra-dan opened this issue 6 years ago • 1 comments

I have just begun using this library and the first thing I tried is, compiling the string example given in this repository. i.e,

 #include <pnew.cpp>
 #include <Arduino.h>
 #include <serstream>
 #include <string>
/*
 * Test std::string
 */

struct TestString {
  static void RunTest() {
    std::ohserialstream serial(Serial);
    std::string str;
    char c;

    for(c='A';c<='Z';c++)
      str+=c;
    serial << str << std::endl;
  }
};
TestString s;

void setup() {
    Serial.begin(115200);
}

void loop() {
    delay(1000);
    s.RunTest();
}

But I am getting the error "Error compiling for board Arduino/Genuino Uno" and the verbose is :

Build options changed, rebuilding all
In file included from C:\Users\Prashant Dandriyal\Documents\Arduino\libraries\first_attempt_vector\first_attempt_vector.ino:2:0:

e:\arduino-nightly\hardware\tools\avr\avr\include\pnew.cpp:12:20: error: declaration of 'operator new' as non-function

 void* operator new(size_t size_,void *ptr_)

                    ^

e:\arduino-nightly\hardware\tools\avr\avr\include\pnew.cpp:12:20: error: 'size_t' was not declared in this scope

e:\arduino-nightly\hardware\tools\avr\avr\include\pnew.cpp:12:33: error: expected primary-expression before 'void'

 void* operator new(size_t size_,void *ptr_)

                                 ^

In file included from e:\arduino-nightly\hardware\tools\avr\avr\include\istream:24:0,

                 from e:\arduino-nightly\hardware\tools\avr\avr\include\string:33,

                 from e:\arduino-nightly\hardware\tools\avr\avr\include\streambuf:22,

                 from e:\arduino-nightly\hardware\tools\avr\avr\include\istream:22,

                 from e:\arduino-nightly\hardware\tools\avr\avr\include\serstream:19,

                 from C:\Users\Prashant Dandriyal\Documents\Arduino\libraries\first_attempt_vector\first_attempt_vector.ino:5:

e:\arduino-nightly\hardware\tools\avr\avr\include\ostream:281:50: error: default argument for template parameter for class enclosing 'class std::basic_ostream<charT, traits>::sentry'

   class _UCXXEXPORT basic_ostream<charT,traits>::sentry

                                                  ^

In file included from e:\arduino-nightly\hardware\tools\avr\avr\include\string:33:0,

                 from e:\arduino-nightly\hardware\tools\avr\avr\include\streambuf:22,

                 from e:\arduino-nightly\hardware\tools\avr\avr\include\istream:22,

                 from e:\arduino-nightly\hardware\tools\avr\avr\include\serstream:19,

                 from C:\Users\Prashant Dandriyal\Documents\Arduino\libraries\first_attempt_vector\first_attempt_vector.ino:5:

e:\arduino-nightly\hardware\tools\avr\avr\include\istream:343:107: error: default argument for template parameter for class enclosing 'class std::basic_istream<charT, traits>::sentry'

  template <class charT,class traits = char_traits<charT> > class _UCXXEXPORT basic_istream<charT,traits>::sentry {

                                                                                                           ^

exit status 1
Error compiling for board Arduino/Genuino Uno.

pra-dan avatar Nov 16 '19 17:11 pra-dan

I discovered that the error is caused due the library serstream.h. Hence, all the functions like std::ohserialstream serial(Serial); give out the error.

pra-dan avatar Nov 17 '19 14:11 pra-dan