0

Feather compiles stopped working after library update
Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.

Feather compiles stopped working after library update

by JackTheSE on Thu Mar 21, 2019 8:22 am

I did a routine update of a library this morning, and I now I get fatal compile errors on all Feather sketches using Http, including the example sketch adafruitio_00_publish. The blink example compiles and works fine on the Feather. I think the updated library had something to do with HTTP, but I'm a little fuzzy on that. The compiler error log includes "cannot allocate an object of abstract type 'HttpClient'. I've tried installing various versions of ArduinoHttpClient, including the latest version 0.3.2. Other boards not using any web connection code compile and execute fine too. Any suggestions?

JackTheSE
 
Posts: 16
Joined: Wed Jan 02, 2019 8:34 pm

Re: Feather compiles stopped working after library update

by JackTheSE on Fri Mar 22, 2019 2:15 am

Still no joy on getting anything that goes to io.adafruit to compile successfully. Here's the error log dump, for anyone to look at. Problem seems to start in the Adafruit_IO_Arduino library, with message

C:\Users\jackr\Documents\Arduino\libraries\Adafruit_IO_Arduino\src\wifi\AdafruitIO_ESP8266.cpp:22:53: error: cannot allocate an object of abstract type 'HttpClient'

_http = new HttpClient(*_client, _host, _http_port);


Full dump follows, with particulars on the library versions I'm using. I did compile the Alexa demo for the Feather, and it worked successfully.


"C:\\Users\\jackr\\Documents\\ArduinoData\\packages\\esp8266\\tools\\xtensa-lx106-elf-gcc\\2.5.0-3-20ed2b9/bin/xtensa-lx106-elf-g++" -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ "-IC:\\Users\\jackr\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\2.5.0/tools/sdk/include" "-IC:\\Users\\jackr\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\2.5.0/tools/sdk/lwip2/include" "-IC:\\Users\\jackr\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\2.5.0/tools/sdk/libc/xtensa-lx106-elf/include" "-IC:\\Users\\jackr\\AppData\\Local\\Temp\\arduino_build_613885/core" -c -Os -g -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=c++11 -MMD -ffunction-sections -fdata-sections -fno-exceptions -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10809 -DARDUINO_ESP8266_ESP12 -DARDUINO_ARCH_ESP8266 "-DARDUINO_BOARD=\"ESP8266_ESP12\"" -DFLASHMODE_QIO -DESP8266 "-IC:\\Users\\jackr\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\2.5.0\\cores\\esp8266" "-IC:\\Users\\jackr\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\2.5.0\\variants\\adafruit" "-IC:\\Users\\jackr\\Documents\\Arduino\\libraries\\Adafruit_IO_Arduino\\src" "-IC:\\Users\\jackr\\Documents\\Arduino\\libraries\\Adafruit_MQTT_Library" "-IC:\\Users\\jackr\\Documents\\Arduino\\libraries\\ArduinoHttpClient\\src" "-IC:\\Users\\jackr\\Documents\\ArduinoData\\packages\\esp8266\\hardware\\esp8266\\2.5.0\\libraries\\ESP8266WiFi\\src" "C:\\Users\\jackr\\Documents\\Arduino\\libraries\\Adafruit_IO_Arduino\\src\\wifi\\AdafruitIO_ESP8266.cpp" -o "C:\\Users\\jackr\\AppData\\Local\\Temp\\arduino_build_613885\\libraries\\Adafruit_IO_Arduino\\wifi\\AdafruitIO_ESP8266.cpp.o"
C:\Users\jackr\Documents\Arduino\libraries\Adafruit_IO_Arduino\src\wifi\AdafruitIO_ESP8266.cpp: In constructor 'AdafruitIO_ESP8266::AdafruitIO_ESP8266(const char*, const char*, const char*, const char*)':

C:\Users\jackr\Documents\Arduino\libraries\Adafruit_IO_Arduino\src\wifi\AdafruitIO_ESP8266.cpp:22:53: error: cannot allocate an object of abstract type 'HttpClient'

_http = new HttpClient(*_client, _host, _http_port);


^

In file included from C:\Users\jackr\Documents\Arduino\libraries\ArduinoHttpClient\src/ArduinoHttpClient.h:8:0,

from C:\Users\jackr\Documents\Arduino\libraries\Adafruit_IO_Arduino\src/AdafruitIO.h:23,

from C:\Users\jackr\Documents\Arduino\libraries\Adafruit_IO_Arduino\src\wifi\AdafruitIO_ESP8266.h:18,

from C:\Users\jackr\Documents\Arduino\libraries\Adafruit_IO_Arduino\src\wifi\AdafruitIO_ESP8266.cpp:14:

C:\Users\jackr\Documents\Arduino\libraries\ArduinoHttpClient\src/HttpClient.h:41:7: note: because the following virtual functions are pure within 'HttpClient':

class HttpClient : public Client

^

In file included from C:\Users\jackr\Documents\Arduino\libraries\ArduinoHttpClient\src/HttpClient.h:10:0,

from C:\Users\jackr\Documents\Arduino\libraries\ArduinoHttpClient\src/ArduinoHttpClient.h:8,

from C:\Users\jackr\Documents\Arduino\libraries\Adafruit_IO_Arduino\src/AdafruitIO.h:23,

from C:\Users\jackr\Documents\Arduino\libraries\Adafruit_IO_Arduino\src\wifi\AdafruitIO_ESP8266.h:18,

from C:\Users\jackr\Documents\Arduino\libraries\Adafruit_IO_Arduino\src\wifi\AdafruitIO_ESP8266.cpp:14:

C:\Users\jackr\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0\cores\esp8266/Client.h:29:21: note: virtual int Client::connect(const IPAddress&, uint16_t)

virtual int connect(CONST IPAddress& ip, uint16_t port) =0;

^

C:\Users\jackr\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0\cores\esp8266/Client.h:37:22: note: virtual bool Client::flush(unsigned int)

virtual bool flush(unsigned int maxWaitMs = 0) = 0;

^

C:\Users\jackr\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0\cores\esp8266/Client.h:38:22: note: virtual bool Client::stop(unsigned int)

virtual bool stop(unsigned int maxWaitMs = 0) = 0;

^

Using library Adafruit_IO_Arduino at version 2.7.23 in folder: C:\Users\jackr\Documents\Arduino\libraries\Adafruit_IO_Arduino
Using library Adafruit_MQTT_Library at version 0.20.4 in folder: C:\Users\jackr\Documents\Arduino\libraries\Adafruit_MQTT_Library
Using library ArduinoHttpClient at version 0.3.2 in folder: C:\Users\jackr\Documents\Arduino\libraries\ArduinoHttpClient
Using library ESP8266WiFi at version 1.0 in folder: C:\Users\jackr\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.0\libraries\ESP8266WiFi
exit status 1
Error compiling for board Adafruit Feather HUZZAH ESP8266.

JackTheSE
 
Posts: 16
Joined: Wed Jan 02, 2019 8:34 pm

Re: Feather compiles stopped working after library update

by JackTheSE on Fri Mar 22, 2019 3:50 am

Problem solved! I went to Tools>>Boards>>Board Manager, and rolled back the ESP8266 from 2.5.0 to 2.4.2. My Feather now compiles normally and is working fine. Hope this helps someone else.

And to Adafruit support: Can you comment please? Thanks...Jack

JackTheSE
 
Posts: 16
Joined: Wed Jan 02, 2019 8:34 pm

Re: Feather compiles stopped working after library update

by brubell on Thu Apr 11, 2019 11:09 am

JackTheSE wrote:Problem solved! I went to Tools>>Boards>>Board Manager, and rolled back the ESP8266 from 2.5.0 to 2.4.2. My Feather now compiles normally and is working fine. Hope this helps someone else.

And to Adafruit support: Can you comment please? Thanks...Jack


Firmware 2.5.0 for the ESP8266 breaks compatibility with ArduinoHttpClient (which is used by Adafruit IO). The Adafruit IO Arduino library is currently unsupported by this firmware. To get it working, you'll need to downgrade the firmware on the ESP8266 from 2.5.0 to 2.4.2.

For instructions on how to do this, please refer to this guide: https://learn.adafruit.com/adafruit-io- ... sketch-4-9

brubell
 
Posts: 494
Joined: Fri Jul 17, 2015 10:33 pm

Re: Feather compiles stopped working after library update

by cfatbu on Mon Aug 19, 2019 2:04 pm

Checking in about this problem, as I'm running into some problems getting my Feather Huzzah to communicate to some secure websites and I'm hoping the library updates will resolve these issues. Is there a possibility that support will be added so that the firmware can be updated to the current 2.5.2 release? Thanks!

cfatbu
 
Posts: 14
Joined: Wed Jul 19, 2017 2:39 pm

Please be positive and constructive with your questions and comments.