Error compiling example sketch library 2.13.0 on UNO and Nano

Why I got error when compiling example sketch (lib. 2.13.0) ArduinoTinyGSM.ino on UNO and Nano?

Arduino: 1.8.10 (Windows 10), Board: "Arduino Nano, ATmega328P (Old Bootloader)"

.
.
.
.

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:81:18: error: expected identifier before numeric constant

 #define INTERNAL 3

                  ^

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:56:9: note: in expansion of macro 'INTERNAL'

         INTERNAL    = 3

         ^~~~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:81:18: error: expected '}' before numeric constant

 #define INTERNAL 3

                  ^

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:56:9: note: in expansion of macro 'INTERNAL'

         INTERNAL    = 3

         ^~~~~~~~

C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:81:18: error: expected unqualified-id before numeric constant

 #define INTERNAL 3

                  ^

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:56:9: note: in expansion of macro 'INTERNAL'

         INTERNAL    = 3

         ^~~~~~~~

In file included from C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger.h:29:0,

                 from C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/ThingerClient.h:28,

                 from C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/ThingerTinyGSM.h:28,

                 from C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\examples\Arduino\ArduinoTinyGSM\ArduinoTinyGSM.ino:13:

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:65:1: error: expected unqualified-id before 'private'

 private:

 ^~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:87:5: error: 'io_type' does not name a type; did you mean 'decltype'?

     io_type io_type_;

     ^~~~~~~

     decltype

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:88:5: error: 'access_type' does not name a type; did you mean 'message_type'?

     access_type access_type_;

     ^~~~~~~~~~~

     message_type

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:89:5: error: 'callback' does not name a type; did you mean 'calloc'?

     callback callback_;

     ^~~~~~~~

     calloc

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:112:1: error: expected unqualified-id before 'public'

 public:

 ^~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:148:50: error: 'thinger::thinger_resource& thinger::operator[](const char*)' must be a nonstatic member function

     thinger_resource & operator[](const char* res){

                                                  ^

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:152:35: error: declaration of 'operator()' as non-function

     thinger_resource & operator()(access_type type){

                                   ^~~~~~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:152:35: error: 'access_type' was not declared in this scope

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:152:35: note: suggested alternative: 'message_type'

     thinger_resource & operator()(access_type type){

                                   ^~~~~~~~~~~

                                   message_type

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:157:5: error: 'io_type' does not name a type; did you mean 'decltype'?

     io_type get_io_type(){

     ^~~~~~~

     decltype

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:161:5: error: 'access_type' does not name a type; did you mean 'message_type'?

     access_type get_access_type(){

     ^~~~~~~~~~~

     message_type

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp: In function 'void thinger::fill_api(protoson::pson_object&)':

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:166:12: error: 'io_type_' was not declared in this scope

         if(io_type_!=none){

            ^~~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:166:22: error: 'none' was not declared in this scope

         if(io_type_!=none){

                      ^~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:166:22: note: suggested alternative: 'tone'

         if(io_type_!=none){

                      ^~~~

                      tone

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:167:29: error: 'access_type_' was not declared in this scope

             content["al"] = access_type_;

                             ^~~~~~~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:174:33: error: 'class thinger::thinger_resource' has no member named 'fill_api'

                 current->value_.fill_api(actions[current->key_]);

                                 ^~~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp: In function 'void thinger::fill_api_io(protoson::pson_object&)':

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:181:12: error: 'io_type_' was not declared in this scope

         if(io_type_ == pson_in){

            ^~~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:181:24: error: 'pson_in' was not declared in this scope

         if(io_type_ == pson_in){

                        ^~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:182:13: error: 'callback_' was not declared in this scope

             callback_.pson(content["in"]);

             ^~~~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:182:13: note: suggested alternative: 'calloc'

             callback_.pson(content["in"]);

             ^~~~~~~~~

             calloc

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:183:30: error: 'pson_out' was not declared in this scope

         }else if(io_type_ == pson_out){

                              ^~~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:183:30: note: suggested alternative: 'stdout'

         }else if(io_type_ == pson_out){

                              ^~~~~~~~

                              stdout

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:184:13: error: 'callback_' was not declared in this scope

             callback_.pson(content["out"]);

             ^~~~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:184:13: note: suggested alternative: 'calloc'

             callback_.pson(content["out"]);

             ^~~~~~~~~

             calloc

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:185:30: error: 'pson_in_pson_out' was not declared in this scope

         }else if(io_type_ == pson_in_pson_out){

                              ^~~~~~~~~~~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:186:13: error: 'callback_' was not declared in this scope

             callback_.pson_in_pson_out(content["in"], content["out"]);

             ^~~~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:186:13: note: suggested alternative: 'calloc'

             callback_.pson_in_pson_out(content["in"], content["out"]);

             ^~~~~~~~~

             calloc

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp: In function 'void thinger::fill_output(protoson::pson&)':

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:191:12: error: 'io_type_' was not declared in this scope

         if(io_type_ == pson_out){

            ^~~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:191:24: error: 'pson_out' was not declared in this scope

         if(io_type_ == pson_out){

                        ^~~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:191:24: note: suggested alternative: 'stdout'

         if(io_type_ == pson_out){

                        ^~~~~~~~

                        stdout

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:192:13: error: 'callback_' was not declared in this scope

             callback_.pson(content);

             ^~~~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:192:13: note: suggested alternative: 'calloc'

             callback_.pson(content);

             ^~~~~~~~~

             calloc

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp: At global scope:

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:200:1: error: expected unqualified-id before 'public'

 public:

 ^~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp: In function 'void thinger::set_function(void (*)())':

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:282:9: error: 'io_type_' was not declared in this scope

         io_type_ = run;

         ^~~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:282:20: error: 'run' was not declared in this scope

         io_type_ = run;

                    ^~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:283:9: error: 'callback_' was not declared in this scope

         callback_.run = run_function;

         ^~~~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:283:9: note: suggested alternative: 'calloc'

         callback_.run = run_function;

         ^~~~~~~~~

         calloc

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp: At global scope:

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:289:60: error: 'void thinger::operator<<(void (*)(protoson::pson&))' must have an argument of class or enumerated type

     void operator<<(void (*in_function)(protoson::pson& in)){

                                                            ^

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp: In function 'void thinger::set_input(void (*)(protoson::pson&))':

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:298:9: error: 'io_type_' was not declared in this scope

         io_type_ = pson_in;

         ^~~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:298:20: error: 'pson_in' was not declared in this scope

         io_type_ = pson_in;

                    ^~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:299:9: error: 'callback_' was not declared in this scope

         callback_.pson = in_function;

         ^~~~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:299:9: note: suggested alternative: 'calloc'

         callback_.pson = in_function;

         ^~~~~~~~~

         calloc

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp: At global scope:

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:305:62: error: 'void thinger::operator>>(void (*)(protoson::pson&))' must have an argument of class or enumerated type

     void operator>>(void (*out_function)(protoson::pson& out)){

                                                              ^

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp: In function 'void thinger::set_output(void (*)(protoson::pson&))':

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:314:9: error: 'io_type_' was not declared in this scope

         io_type_ = pson_out;

         ^~~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:314:20: error: 'pson_out' was not declared in this scope

         io_type_ = pson_out;

                    ^~~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:314:20: note: suggested alternative: 'stdout'

         io_type_ = pson_out;

                    ^~~~~~~~

                    stdout

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:315:9: error: 'callback_' was not declared in this scope

         callback_.pson = out_function;

         ^~~~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:315:9: note: suggested alternative: 'calloc'

         callback_.pson = out_function;

         ^~~~~~~~~

         calloc

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp: At global scope:

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:321:94: error: 'void thinger::operator=(void (*)(protoson::pson&, protoson::pson&))' must be a nonstatic member function

     void operator=(void (*pson_in_pson_out_function)(protoson::pson& in, protoson::pson& out)){

                                                                                              ^

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp: In function 'void thinger::set_input_output(void (*)(protoson::pson&, protoson::pson&))':

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:330:9: error: 'io_type_' was not declared in this scope

         io_type_ = pson_in_pson_out;

         ^~~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:330:20: error: 'pson_in_pson_out' was not declared in this scope

         io_type_ = pson_in_pson_out;

                    ^~~~~~~~~~~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:330:20: note: suggested alternative: 'pson_in_pson_out_function'

         io_type_ = pson_in_pson_out;

                    ^~~~~~~~~~~~~~~~

                    pson_in_pson_out_function

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:331:9: error: 'callback_' was not declared in this scope

         callback_.pson_in_pson_out = pson_in_pson_out_function;

         ^~~~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:331:9: note: suggested alternative: 'calloc'

         callback_.pson_in_pson_out = pson_in_pson_out_function;

         ^~~~~~~~~

         calloc

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp: In function 'void thinger::handle_request(thinger::thinger_message&, thinger::thinger_message&)':

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:343:25: error: 'io_type_' was not declared in this scope

                 switch (io_type_){

                         ^~~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:344:26: error: 'pson_in' was not declared in this scope

                     case pson_in:

                          ^~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:345:25: error: 'callback_' was not declared in this scope

                         callback_.pson(request);

                         ^~~~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:345:25: note: suggested alternative: 'calloc'

                         callback_.pson(request);

                         ^~~~~~~~~

                         calloc

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:347:26: error: 'pson_out' was not declared in this scope

                     case pson_out:

                          ^~~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:347:26: note: suggested alternative: 'stdout'

                     case pson_out:

                          ^~~~~~~~

                          stdout

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:350:26: error: 'run' was not declared in this scope

                     case run:

                          ^~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:353:26: error: 'pson_in_pson_out' was not declared in this scope

                     case pson_in_pson_out:

                          ^~~~~~~~~~~~~~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:356:26: error: 'none' was not declared in this scope

                     case none:

                          ^~~~

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:356:26: note: suggested alternative: 'tone'

                     case none:

                          ^~~~

                          tone

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp: At global scope:

C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:374:1: error: expected declaration before '}' token

 }

 ^

Multiple libraries were found for "TinyGsmClient.h"
 Used: C:\Users\mukhlas\Documents\Arduino\libraries\TinyGSM
Multiple libraries were found for "ThingerTinyGSM.h"
 Used: C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io
Multiple libraries were found for "SoftwareSerial.h"
 Used: C:\Program
Using library TinyGSM at version 0.7.9 in folder: C:\Users\mukhlas\Documents\Arduino\libraries\TinyGSM 
Using library thinger.io at version 2.13.0 in folder: C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io 
Using library SoftwareSerial at version 1.0 in folder: C:\Program Files
exit status 1
Error compiling for board Arduino Nano.

But everything is fine when downgrade to 2.9.2?

Just go into the source code for thinger and remove the “INTERNAL = 3” line. I had the same issue, don’t know why they have that in there… There are no references to it that I could find.

1 Like

thanks for the answer, what is the name of file?

Here’s the path: C:\Users\mukhlas\Documents\Arduino\libraries\thinger.io\src/thinger/thinger_resource.hpp:56:9

A key skill to have while programming is to read and try to understand the errors that the compiler says. As you can see I just copied what the compiler said. :+1:

2 Likes

I usually read about last sentence of compiler said, not from begining, because it very technical and my programming skill was not so good hahaha

thank you for the explanation so i get new learning