washcroft / HttpGarageDoorController

A project for an Arduino based WiFi-enabled controller, IoT/M2M enabling an ordinary garage door operator.
MIT License
11 stars 4 forks source link

Compile errors #9

Closed rjblake closed 6 years ago

rjblake commented 6 years ago

Just downloaded the zip and tried to compile for an ESP8266. Arduino IDE came back with a whole stack of errors (well mostly warnings that result in errors), and an error. Guess I've got something wrong somewhere

Arduino: 1.8.5 (Mac OS X), Board: "Adafruit HUZZAH ESP8266, 80 MHz, 4M (1M SPIFFS), v2 Prebuilt (MSS=536), Disabled, None, 115200"

Error: sketch/src/HttpWebServer/HttpWebServer.cpp:405:87: error: no matching function for call to 'min(size_t, uint16_t&)' size_t oauth_nonce_length = min(strlen(q_oauth_nonce), this->_oauth_nonce_size);

Warnings (will look to rewrite the #ifdef) In file included from sketch/GarageDoorController.h:16:0, from sketch/GarageDoorController.cpp:25: sketch/src/Utilities/Utilities.h:11:18: warning: extra tokens at end of #ifdef directive [enabled by default]

ifdef LOG_LEVEL && LOG_LEVEL >= 1

              ^

In file included from sketch/src/HttpWebServer/../../src/Sha/sha256.h:4:0, from sketch/src/HttpWebServer/HttpWebServer.h:18, from sketch/GarageDoorController.h:17, from sketch/GarageDoorController.cpp:25: sketch/src/HttpWebServer/../../src/Sha/sha256_config.h:36:0: warning: "HASH_LENGTH" redefined [enabled by default]

define HASH_LENGTH 32

^ In file included from sketch/src/HttpWebServer/../../src/Sha/sha1.h:4:0, from sketch/src/HttpWebServer/HttpWebServer.h:17, from sketch/GarageDoorController.h:17, from sketch/GarageDoorController.cpp:25: sketch/src/HttpWebServer/../../src/Sha/sha1_config.h:38:0: note: this is the location of the previous definition

define HASH_LENGTH 20

^ sketch/GarageDoorController.cpp:322:18: warning: extra tokens at end of #ifdef directive [enabled by default]

ifdef LOG_LEVEL && LOG_LEVEL >= 3

              ^

In file included from sketch/GarageDoorController.h:13:0, from sketch/GarageDoorController.cpp:25: sketch/config.h:11:39: warning: large integer implicitly truncated to unsigned type [-Woverflow] const uint16_t DOOR_AUTO_CLOSE_TIME = 300000;

                                   ^

sketch/config.h:31:50: warning: large integer implicitly truncated to unsigned type [-Woverflow] const uint16_t OAUTH_TIMESTAMP_VALIDITY_WINDOW = 300000;

                                              ^

In file included from sketch/GarageDoorController.h:16:0, from /Users/richard/Documents/Arduino/HttpGarageDoorController/HttpGarageDoorController.ino:46: sketch/src/Utilities/Utilities.h:11:18: warning: extra tokens at end of #ifdef directive [enabled by default]

ifdef LOG_LEVEL && LOG_LEVEL >= 1

              ^

In file included from sketch/src/HttpWebServer/../../src/Sha/sha256.h:4:0, from sketch/src/HttpWebServer/HttpWebServer.h:18, from sketch/GarageDoorController.h:17, from /Users/richard/Documents/Arduino/HttpGarageDoorController/HttpGarageDoorController.ino:46: sketch/src/HttpWebServer/../../src/Sha/sha256_config.h:36:0: warning: "HASH_LENGTH" redefined [enabled by default]

define HASH_LENGTH 32

^ In file included from sketch/src/HttpWebServer/../../src/Sha/sha1.h:4:0, from sketch/src/HttpWebServer/HttpWebServer.h:17, from sketch/GarageDoorController.h:17, from /Users/richard/Documents/Arduino/HttpGarageDoorController/HttpGarageDoorController.ino:46: sketch/src/HttpWebServer/../../src/Sha/sha1_config.h:38:0: note: this is the location of the previous definition

define HASH_LENGTH 20

^ In file included from /Users/richard/Documents/Arduino/HttpGarageDoorController/HttpGarageDoorController.ino:43:0: sketch/config.h:11:39: warning: large integer implicitly truncated to unsigned type [-Woverflow] const uint16_t DOOR_AUTO_CLOSE_TIME = 300000;

                                   ^

sketch/config.h:31:50: warning: large integer implicitly truncated to unsigned type [-Woverflow] const uint16_t OAUTH_TIMESTAMP_VALIDITY_WINDOW = 300000;

                                              ^

/Users/richard/Documents/Arduino/HttpGarageDoorController/HttpGarageDoorController.ino: In function 'void loop()': /Users/richard/Documents/Arduino/HttpGarageDoorController/HttpGarageDoorController.ino:205:19: warning: converting to non-pointer type 'int' from NULL [-Wconversion-null] if (client != NULL) { ^ In file included from sketch/src/HttpWebServer/HttpWebServer.h:14:0, from sketch/src/HttpWebServer/HttpWebServer.cpp:25: sketch/src/HttpWebServer/../../src/Utilities/Utilities.h:11:18: warning: extra tokens at end of #ifdef directive [enabled by default]

ifdef LOG_LEVEL && LOG_LEVEL >= 1

              ^

In file included from sketch/src/HttpWebServer/../../src/Sha/sha256.h:4:0, from sketch/src/HttpWebServer/HttpWebServer.h:18, from sketch/src/HttpWebServer/HttpWebServer.cpp:25: sketch/src/HttpWebServer/../../src/Sha/sha256_config.h:36:0: warning: "HASH_LENGTH" redefined [enabled by default]

define HASH_LENGTH 32

^ In file included from sketch/src/HttpWebServer/../../src/Sha/sha1.h:4:0, from sketch/src/HttpWebServer/HttpWebServer.h:17, from sketch/src/HttpWebServer/HttpWebServer.cpp:25: sketch/src/HttpWebServer/../../src/Sha/sha1_config.h:38:0: note: this is the location of the previous definition

define HASH_LENGTH 20

^ sketch/src/HttpWebServer/HttpWebServer.cpp: In member function 'void HttpWebServer::poll(Client&, uint16_t ()(Client&, const char, const char, HashMap<char, char, 24u>&))': sketch/src/HttpWebServer/HttpWebServer.cpp:264:85: warning: passing NULL to non-pointer argument 3 of 'size_t percent_decode(const char, char*, size_t)' [-Wconversion-null] size_t name_decoded_size = percent_decode(query_parameter_name, NULL, NULL);

                                                                                 ^

sketch/src/HttpWebServer/HttpWebServer.cpp:269:87: warning: passing NULL to non-pointer argument 3 of 'size_t percent_decode(const char, char, size_t)' [-Wconversion-null] size_t value_decoded_size = percent_decode(query_parameter_value, NULL, NULL);

                                                                                   ^

sketch/src/HttpWebServer/HttpWebServer.cpp:339:90: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] bool oauth_parameters_receieved = request_query_map.contains("oauth_consumer_key") && request_query_map.contains("oauth_signature") && request_query_map.contains("oauth_signature_method") && request_query_map.contains("oauth_timestamp") && request_query_map.contains("oauth_nonce");

                                                                                      ^

sketch/src/HttpWebServer/HttpWebServer.cpp:339:139: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] bool oauth_parameters_receieved = request_query_map.contains("oauth_consumer_key") && request_query_map.contains("oauth_signature") && request_query_map.contains("oauth_signature_method") && request_query_map.contains("oauth_timestamp") && request_query_map.contains("oauth_nonce");

                                                                                                                                       ^

sketch/src/HttpWebServer/HttpWebServer.cpp:339:195: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] bool oauth_parameters_receieved = request_query_map.contains("oauth_consumer_key") && request_query_map.contains("oauth_signature") && request_query_map.contains("oauth_signature_method") && request_query_map.contains("oauth_timestamp") && request_query_map.contains("oauth_nonce");

                                                                                                                                                                                               ^

sketch/src/HttpWebServer/HttpWebServer.cpp:339:244: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] bool oauth_parameters_receieved = request_query_map.contains("oauth_consumer_key") && request_query_map.contains("oauth_signature") && request_query_map.contains("oauth_signature_method") && request_query_map.contains("oauth_timestamp") && request_query_map.contains("oauth_nonce");

                                                                                                                                                                                                                                                ^

sketch/src/HttpWebServer/HttpWebServer.cpp:339:289: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] bool oauth_parameters_receieved = request_query_map.contains("oauth_consumer_key") && request_query_map.contains("oauth_signature") && request_query_map.contains("oauth_signature_method") && request_query_map.contains("oauth_timestamp") && request_query_map.contains("oauth_nonce");

                                                                                                                                                                                                                                                                                             ^

sketch/src/HttpWebServer/HttpWebServer.cpp:345:72: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] q_oauth_consumer_key = request_query_map["oauth_consumer_key"];

                                                                    ^

sketch/src/HttpWebServer/HttpWebServer.cpp:346:66: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] q_oauth_signature = request_query_map["oauth_signature"];

                                                              ^

sketch/src/HttpWebServer/HttpWebServer.cpp:347:80: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] q_oauth_signature_method = request_query_map["oauth_signature_method"];

                                                                            ^

sketch/src/HttpWebServer/HttpWebServer.cpp:348:66: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] q_oauth_timestamp = request_query_map["oauth_timestamp"];

                                                              ^

sketch/src/HttpWebServer/HttpWebServer.cpp:349:58: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] q_oauth_nonce = request_query_map["oauth_nonce"];

                                                      ^

sketch/src/HttpWebServer/HttpWebServer.cpp:350:62: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings] q_oauth_version = request_query_map["oauth_version"]; ^ ^ sketch/src/HttpWebServer/HttpWebServer.cpp:405:87: note: candidates are: In file included from /Users/richard/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/xtensa-lx106-elf/include/c++/4.8.2/algorithm:62:0, from /Users/richard/Library/Arduino15/packages/esp8266/hardware/esp8266/2.4.0/cores/esp8266/Arduino.h:240, from sketch/src/HttpWebServer/HttpWebServer.h:6, from sketch/src/HttpWebServer/HttpWebServer.cpp:25: /Users/richard/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/xtensa-lx106-elf/include/c++/4.8.2/bits/stl_algo.h:4226:5: note: template<class _Tp, class _Compare> _Tp std::min(std::initializer_list<_Tp>, _Compare) min(initializer_list<_Tp> __l, _Compare __comp) ^ /Users/richard/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/xtensa-lx106-elf/include/c++/4.8.2/bits/stl_algo.h:4226:5: note: template argument deduction/substitution failed: sketch/src/HttpWebServer/HttpWebServer.cpp:405:87: note: mismatched types 'std::initializer_list<_Tp>' and 'unsigned int' size_t oauth_nonce_length = min(strlen(q_oauth_nonce), this->_oauth_nonce_size);

                                                                                   ^

In file included from /Users/richard/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/xtensa-lx106-elf/include/c++/4.8.2/algorithm:62:0, from /Users/richard/Library/Arduino15/packages/esp8266/hardware/esp8266/2.4.0/cores/esp8266/Arduino.h:240, from sketch/src/HttpWebServer/HttpWebServer.h:6, from sketch/src/HttpWebServer/HttpWebServer.cpp:25: /Users/richard/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/xtensa-lx106-elf/include/c++/4.8.2/bits/stl_algo.h:4221:5: note: template _Tp std::min(std::initializer_list<_Tp>) min(initializer_list<_Tp> __l) ^ /Users/richard/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/xtensa-lx106-elf/include/c++/4.8.2/bits/stl_algo.h:4221:5: note: template argument deduction/substitution failed: sketch/src/HttpWebServer/HttpWebServer.cpp:405:87: note: mismatched types 'std::initializer_list<_Tp>' and 'unsigned int' size_t oauth_nonce_length = min(strlen(q_oauth_nonce), this->_oauth_nonce_size);

                                                                                   ^

In file included from /Users/richard/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/xtensa-lx106-elf/include/c++/4.8.2/algorithm:61:0, from /Users/richard/Library/Arduino15/packages/esp8266/hardware/esp8266/2.4.0/cores/esp8266/Arduino.h:240, from sketch/src/HttpWebServer/HttpWebServer.h:6, from sketch/src/HttpWebServer/HttpWebServer.cpp:25: /Users/richard/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/xtensa-lx106-elf/include/c++/4.8.2/bits/stl_algobase.h:239:5: note: template<class _Tp, class _Compare> const _Tp& std::min(const _Tp&, const _Tp&, _Compare) min(const _Tp& a, const _Tp& __b, _Compare comp) ^ /Users/richard/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/xtensa-lx106-elf/include/c++/4.8.2/bits/stl_algobase.h:239:5: note: template argument deduction/substitution failed: sketch/src/HttpWebServer/HttpWebServer.cpp:405:87: note: deduced conflicting types for parameter 'const _Tp' ('unsigned int' and 'uint16_t {aka short unsigned int}') size_t oauth_nonce_length = min(strlen(q_oauth_nonce), this->_oauth_nonce_size);

                                                                                   ^

In file included from /Users/richard/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/xtensa-lx106-elf/include/c++/4.8.2/algorithm:61:0, from /Users/richard/Library/Arduino15/packages/esp8266/hardware/esp8266/2.4.0/cores/esp8266/Arduino.h:240, from sketch/src/HttpWebServer/HttpWebServer.h:6, from sketch/src/HttpWebServer/HttpWebServer.cpp:25: /Users/richard/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/xtensa-lx106-elf/include/c++/4.8.2/bits/stl_algobase.h:193:5: note: template const _Tp& std::min(const _Tp&, const _Tp&) min(const _Tp& __a, const _Tp& __b) ^ /Users/richard/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/xtensa-lx106-elf/include/c++/4.8.2/bits/stl_algobase.h:193:5: note: template argument deduction/substitution failed: sketch/src/HttpWebServer/HttpWebServer.cpp:405:87: note: deduced conflicting types for parameter 'const _Tp' ('unsigned int' and 'uint16_t {aka short unsigned int}') size_t oauth_nonce_length = min(strlen(q_oauth_nonce), this->_oauth_nonce_size);

                                                                                   ^

sketch/src/HttpWebServer/HttpWebServer.cpp:453:79: warning: passing NULL to non-pointer argument 4 of 'size_t percent_encode(const char, size_t, char, size_t)' [-Wconversion-null] size_t key_encoded_size = percent_encode(key, key_length, NULL, NULL);

                                                                           ^

sketch/src/HttpWebServer/HttpWebServer.cpp:461:85: warning: passing NULL to non-pointer argument 4 of 'size_t percent_encode(const char, size_t, char, size_t)' [-Wconversion-null] size_t value_encoded_size = percent_encode(value, value_length, NULL, NULL);

                                                                                 ^

sketch/src/HttpWebServer/HttpWebServer.cpp:484:119: warning: passing NULL to non-pointer argument 4 of 'size_t percent_encode(const char, size_t, char, size_t)' [-Wconversion-null] size_t request_url_encoded_size = percent_encode(request_url_complete, request_url_complete_length, NULL, NULL);

                                                                                                                   ^

sketch/src/HttpWebServer/HttpWebServer.cpp:491:134: warning: passing NULL to non-pointer argument 4 of 'size_t percent_encode(const char, size_t, char, size_t)' [-Wconversion-null] size_t oauth_parameter_string_encoded_size = percent_encode(oauth_parameter_string, oauth_parameter_string_length, NULL, NULL);

                                                                                                                                  ^

sketch/src/HttpWebServer/HttpWebServer.cpp:521:131: warning: passing NULL to non-pointer argument 4 of 'size_t percent_encode(const char, size_t, char, size_t)' [-Wconversion-null] size_t oauth_consumer_secret_encoded_size = percent_encode(oauth_consumer_secret, oauth_consumer_secret_length, NULL, NULL);

                                                                                                                               ^

sketch/src/HttpWebServer/HttpWebServer.cpp:531:122: warning: passing NULL to non-pointer argument 4 of 'size_t percent_encode(const char, size_t, char, size_t)' [-Wconversion-null] size_t oauth_token_secret_encoded_size = percent_encode(oauth_token_secret, oauth_token_secret_length, NULL, NULL);

                                                                                                                      ^

sketch/src/HttpWebServer/HttpWebServer.cpp: In static member function 'static void HttpWebServer::send_response(Client&, uint16_t, const uint8_t, size_t)': sketch/src/HttpWebServer/HttpWebServer.cpp:695:23: warning: deprecated conversion from string constant to 'char' [-Wwrite-strings] char *head_format = "HTTP/1.1 %d %s\r\nContent-Type: application/json\r\nConnection: close\r\n\r\n";

                   ^

sketch/src/HttpWebServer/HttpWebServer.cpp:702:23: warning: deprecated conversion from string constant to 'char' [-Wwrite-strings] char body_format = "{\"result\":%d,\"success\":%s,\"message\":\"%s\"}";

                   ^

exit status 1 Error compiling for board Adafruit HUZZAH ESP8266.

This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences.

OhHeyAlan commented 6 years ago

Ever get to the bottom of this?

washcroft commented 6 years ago

@rjblake @sparklingsparklers fixed in the latest commit, issue caused by changes in ESP8266 release v2.4