Library Example Individual platformio project

Hello,

I am new to platformio. I am trying to open following example using platformio.

homie-esp8266/examples/LightOnOff at develop · homieiot/homie-esp8266 · GitHub

i have created following platformio.ini file in dropped in at “…/examples/LightOnOff” directory.

[platformio]
src_dir = .
lib_extra_dirs = .piolibdeps/, …/…/

[env:nodemcuv2]
platform = GitHub - platformio/platform-espressif8266: Espressif 8266: development platform for PlatformIO
board = nodemcuv2
framework = arduino

lib_deps = AsyncMqttClient
ArduinoJson
Bounce2
ESPAsyncWebServer
Hash

It’s compiling the code but getting following error during linking.

Executing task: platformio.exe run <

Converting LightOnOff.ino
Collected 46 compatible libraries
Looking for dependencies…
Library Dependency Graph
|-- v0.8.1
| |-- v1.1.2
| | |-- v1.0
|-- v5.11.2
|-- v2.3
|-- v1.1.0
| |-- v1.1.2
| | |-- v1.0
| |-- v1.0
| |-- v5.11.2
| |-- v1.0
|-- v1.0
|--
| |-- v0.8.1
| | |-- v1.1.2
| | | |-- v1.0
| |-- v1.0
| |--
| | |-- v1.0
| |-- v1.1.0
| | |-- v1.1.2
| | | |-- v1.0
| | |-- v1.0
| | |-- v5.11.2
| | |-- v1.0
| |-- v5.11.2
| |-- v2.3
| |-- v1.0
| |-- v1.1
| | |-- v1.0
| |-- v1.1.0
| | |-- v1.0
| |-- v1.1.2
| | |-- v1.0
Compiling .pioenvs\nodemcuv2\src\LightOnOff.ino.o
Archiving .pioenvs\nodemcuv2\libFrameworkArduinoVariant.a
Compiling .pioenvs\nodemcuv2\FrameworkArduino\Esp.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\FS.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\FunctionalInterrupt.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\HardwareSerial.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\IPAddress.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\MD5Builder.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\Print.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\Schedule.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\Stream.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\StreamString.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\Tone.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\Updater.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\WMath.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\WString.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\abi.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\base64.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\cbuf.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\cont.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\cont_util.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\core_esp8266_eboot_command.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\core_esp8266_flash_utils.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\core_esp8266_i2s.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\core_esp8266_main.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\core_esp8266_noniso.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\core_esp8266_phy.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\core_esp8266_postmortem.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\core_esp8266_si2c.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\core_esp8266_timer.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\core_esp8266_wiring.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\core_esp8266_wiring_analog.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\core_esp8266_wiring_digital.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\core_esp8266_wiring_pulse.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\core_esp8266_wiring_pwm.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\core_esp8266_wiring_shift.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\debug.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\heap.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\libb64\cdecode.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\libb64\cencode.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\libc_replacements.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\pgmspace.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\spiffs\spiffs_cache.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\spiffs\spiffs_check.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\spiffs\spiffs_gc.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\spiffs\spiffs_hydrogen.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\spiffs\spiffs_nucleus.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\spiffs_api.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\spiffs_hal.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\time.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\uart.o
Compiling .pioenvs\nodemcuv2\FrameworkArduino\umm_malloc\umm_malloc.o
Compiling .pioenvs\nodemcuv2\lib\ESP8266WiFi\ESP8266WiFi.o
Compiling .pioenvs\nodemcuv2\lib\ESP8266WiFi\ESP8266WiFiAP.o
Archiving .pioenvs\nodemcuv2\libFrameworkArduino.a
Compiling .pioenvs\nodemcuv2\lib\ESP8266WiFi\ESP8266WiFiGeneric.o
Compiling .pioenvs\nodemcuv2\lib\ESP8266WiFi\ESP8266WiFiMulti.o
Compiling .pioenvs\nodemcuv2\lib\ESP8266WiFi\ESP8266WiFiSTA.o
Compiling .pioenvs\nodemcuv2\lib\ESP8266WiFi\ESP8266WiFiScan.o
Compiling .pioenvs\nodemcuv2\lib\ESP8266WiFi\WiFiClient.o
Compiling .pioenvs\nodemcuv2\lib\ESP8266WiFi\WiFiClientSecure.o
Compiling .pioenvs\nodemcuv2\lib\ESP8266WiFi\WiFiServer.o
Compiling .pioenvs\nodemcuv2\lib\ESP8266WiFi\WiFiUdp.o
Compiling .pioenvs\nodemcuv2\lib\ESPAsyncTCP_ID305\AsyncPrinter.o
Compiling .pioenvs\nodemcuv2\lib\ESPAsyncTCP_ID305\ESPAsyncTCP.o
Compiling .pioenvs\nodemcuv2\lib\ESPAsyncTCP_ID305\ESPAsyncTCPbuffer.o
Archiving .pioenvs\nodemcuv2\lib\libESP8266WiFi.a
Compiling .pioenvs\nodemcuv2\lib\ESPAsyncTCP_ID305\SyncClient.o
Compiling .pioenvs\nodemcuv2\lib\ESPAsyncTCP_ID305\tcp_axtls.o
Compiling .pioenvs\nodemcuv2\lib\AsyncMqttClient_ID346\AsyncMqttClient.o
Compiling .pioenvs\nodemcuv2\lib\AsyncMqttClient_ID346\AsyncMqttClient\Packets\ConnAckPacket.o
Compiling .pioenvs\nodemcuv2\lib\AsyncMqttClient_ID346\AsyncMqttClient\Packets\PingRespPacket.o
Archiving .pioenvs\nodemcuv2\lib\libESPAsyncTCP_ID305.a
Compiling .pioenvs\nodemcuv2\lib\AsyncMqttClient_ID346\AsyncMqttClient\Packets\PubAckPacket.o
Compiling .pioenvs\nodemcuv2\lib\AsyncMqttClient_ID346\AsyncMqttClient\Packets\PubCompPacket.o
Compiling .pioenvs\nodemcuv2\lib\AsyncMqttClient_ID346\AsyncMqttClient\Packets\PubRecPacket.o
Compiling .pioenvs\nodemcuv2\lib\AsyncMqttClient_ID346\AsyncMqttClient\Packets\PubRelPacket.o
Compiling .pioenvs\nodemcuv2\lib\AsyncMqttClient_ID346\AsyncMqttClient\Packets\PublishPacket.o
Compiling .pioenvs\nodemcuv2\lib\AsyncMqttClient_ID346\AsyncMqttClient\Packets\SubAckPacket.o
Compiling .pioenvs\nodemcuv2\lib\AsyncMqttClient_ID346\AsyncMqttClient\Packets\UnsubAckPacket.o
Archiving .pioenvs\nodemcuv2\lib\libArduinoJson_ID64.a
Compiling .pioenvs\nodemcuv2\lib\Bounce2_ID1106\Bounce2.o
Archiving .pioenvs\nodemcuv2\lib\libAsyncMqttClient_ID346.a
Compiling .pioenvs\nodemcuv2\lib\Hash\Hash.o
Compiling .pioenvs\nodemcuv2\lib\Hash\sha1\sha1.o
Compiling .pioenvs\nodemcuv2\lib\ESPAsyncWebServer_ID306\AsyncEventSource.o
Archiving .pioenvs\nodemcuv2\lib\libBounce2_ID1106.a
Compiling .pioenvs\nodemcuv2\lib\ESPAsyncWebServer_ID306\AsyncWebSocket.o
Archiving .pioenvs\nodemcuv2\lib\libHash.a
Compiling .pioenvs\nodemcuv2\lib\ESPAsyncWebServer_ID306\SPIFFSEditor.o
Compiling .pioenvs\nodemcuv2\lib\ESPAsyncWebServer_ID306\WebAuthentication.o
Compiling .pioenvs\nodemcuv2\lib\ESPAsyncWebServer_ID306\WebHandlers.o
Compiling .pioenvs\nodemcuv2\lib\ESPAsyncWebServer_ID306\WebRequest.o
Compiling .pioenvs\nodemcuv2\lib\ESPAsyncWebServer_ID306\WebResponses.o
Compiling .pioenvs\nodemcuv2\lib\ESPAsyncWebServer_ID306\WebServer.o
Compiling .pioenvs\nodemcuv2\lib\Ticker\Ticker.o
Archiving .pioenvs\nodemcuv2\lib\libTicker.a
Compiling .pioenvs\nodemcuv2\lib\ESP8266mDNS\ESP8266mDNS.o
Compiling .pioenvs\nodemcuv2\lib\ESP8266HTTPClient\ESP8266HTTPClient.o
Compiling .pioenvs\nodemcuv2\lib\DNSServer\DNSServer.o
Archiving .pioenvs\nodemcuv2\lib\libESPAsyncWebServer_ID306.a
Compiling .pioenvs\nodemcuv2\lib\src\Homie.o
Archiving .pioenvs\nodemcuv2\lib\libDNSServer.a
Archiving .pioenvs\nodemcuv2\lib\libESP8266HTTPClient.a
Archiving .pioenvs\nodemcuv2\lib\libESP8266mDNS.a
Compiling .pioenvs\nodemcuv2\lib\src\HomieNode.o
Compiling .pioenvs\nodemcuv2\lib\src\HomieSetting.o
Compiling .pioenvs\nodemcuv2\lib\src\SendingPromise.o
Archiving .pioenvs\nodemcuv2\lib\libsrc.a
Linking .pioenvs\nodemcuv2\firmware.elf
.pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):(.text._ZN14HomieInternals10HomieClassD2Ev+0x0): undefined reference to HomieInternals::BootConfig::~BootConfig()' .pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):(.text._ZN14HomieInternals10HomieClassD2Ev+0x4): undefined reference to HomieInternals::BootNormal::~BootNormal()’
.pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):(.text._ZN14HomieInternals10HomieClassD2Ev+0x8): undefined reference to HomieInternals::BootStandalone::~BootStandalone()' .pioenvs\nodemcuv2\lib\libsrc.a(Homie.o): In function HomieInternals::HomieClass::~HomieClass()‘:
Homie.cpp:(.text._ZN14HomieInternals10HomieClassD2Ev+0x2a): undefined reference to HomieInternals::BootConfig::~BootConfig()' Homie.cpp:(.text._ZN14HomieInternals10HomieClassD2Ev+0x33): undefined reference to HomieInternals::BootNormal::~BootNormal()’
Homie.cpp:(.text._ZN14HomieInternals10HomieClassD2Ev+0x3b): undefined reference to HomieInternals::BootStandalone::~BootStandalone()' .pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):(.text._ZNK14HomieInternals10HomieClass17_checkBeforeSetupEPK19__FlashStringHelper+0xc): undefined reference to HomieInternals::Helpers::abort(String const&)’
.pioenvs\nodemcuv2\lib\libsrc.a(Homie.o): In function HomieInternals::HomieClass::_checkBeforeSetup(__FlashStringHelper const*) const': Homie.cpp:(.text._ZNK14HomieInternals10HomieClass17_checkBeforeSetupEPK19__FlashStringHelper+0x41): undefined reference to HomieInternals::Helpers::abort(String const&)’
.pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):(.text.ZN14HomieInternals10HomieClass13__setFirmwareEPKcS2+0x8): undefined reference to HomieInternals::Interface::get()' .pioenvs\nodemcuv2\lib\libsrc.a(Homie.o): In function HomieInternals::HomieClass::__setFirmware(char const*, char const*)‘:
Homie.cpp:(.text.ZN14HomieInternals10HomieClass13__setFirmwareEPKcS2+0x4d): undefined reference to HomieInternals::Helpers::abort(String const&)' Homie.cpp:(.text._ZN14HomieInternals10HomieClass13__setFirmwareEPKcS2_+0x5c): undefined reference to HomieInternals::Interface::get()’
Homie.cpp:(.text.ZN14HomieInternals10HomieClass13__setFirmwareEPKcS2+0x74): undefined reference to HomieInternals::Interface::get()' Homie.cpp:(.text._ZN14HomieInternals10HomieClass13__setFirmwareEPKcS2_+0x88): undefined reference to HomieInternals::Interface::get()’
Homie.cpp:(.text.ZN14HomieInternals10HomieClass13__setFirmwareEPKcS2+0xa1): undefined reference to HomieInternals::Interface::get()' .pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):(.text._ZN14HomieInternals10HomieClass4loopEv+0x2b): undefined reference to HomieInternals::Interface::get()’
.pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):(.text._ZN14HomieInternals10HomieClass4loopEv+0x37): more undefined references to HomieInternals::Interface::get()' follow .pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):(.text._ZN14HomieInternals10HomieClass5setupEv+0x14): undefined reference to HomieInternals::Config::setHomieBootModeOnNextBoot(HomieBootMode)’
.pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):(.text._ZN14HomieInternals10HomieClass5setupEv+0x18): undefined reference to HomieInternals::Config::load()' .pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):(.text._ZN14HomieInternals10HomieClass5setupEv+0x1c): undefined reference to HomieInternals::Config::getHomieBootModeOnNextBoot()’
.pioenvs\nodemcuv2\lib\libsrc.a(Homie.o): In function HomieInternals::HomieClass::setup()': Homie.cpp:(.text._ZN14HomieInternals10HomieClass5setupEv+0xef): undefined reference to HomieInternals::Interface::get()’
Homie.cpp:(.text._ZN14HomieInternals10HomieClass5setupEv+0xfb): undefined reference to HomieInternals::Config::setHomieBootModeOnNextBoot(HomieBootMode)' Homie.cpp:(.text._ZN14HomieInternals10HomieClass5setupEv+0x107): undefined reference to HomieInternals::Interface::get()’
Homie.cpp:(.text._ZN14HomieInternals10HomieClass5setupEv+0x110): undefined reference to HomieInternals::Config::load()' Homie.cpp:(.text._ZN14HomieInternals10HomieClass5setupEv+0x11e): undefined reference to HomieInternals::Interface::get()’
Homie.cpp:(.text._ZN14HomieInternals10HomieClass5setupEv+0x133): undefined reference to HomieInternals::Interface::get()' Homie.cpp:(.text._ZN14HomieInternals10HomieClass5setupEv+0x151): undefined reference to HomieInternals::Interface::get()’
Homie.cpp:(.text._ZN14HomieInternals10HomieClass5setupEv+0x15a): undefined reference to HomieInternals::Interface::get()' Homie.cpp:(.text._ZN14HomieInternals10HomieClass5setupEv+0x162): undefined reference to HomieInternals::Interface::get()’
Homie.cpp:(.text._ZN14HomieInternals10HomieClass5setupEv+0x18e): undefined reference to HomieInternals::Helpers::abort(String const&)' Homie.cpp:(.text._ZN14HomieInternals10HomieClass5setupEv+0x19f): undefined reference to HomieInternals::Interface::get()’
Homie.cpp:(.text._ZN14HomieInternals10HomieClass5setupEv+0x1a8): undefined reference to HomieInternals::Interface::get()' Homie.cpp:(.text._ZN14HomieInternals10HomieClass5setupEv+0x1b1): undefined reference to HomieInternals::Config::getHomieBootModeOnNextBoot()’
Homie.cpp:(.text._ZN14HomieInternals10HomieClass5setupEv+0x1c0): undefined reference to HomieInternals::Interface::get()' .pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):(.text._ZN14HomieInternals10HomieClassC2Ev+0x34): undefined reference to HomieInternals::BootStandalone::BootStandalone()’
.pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):(.text._ZN14HomieInternals10HomieClassC2Ev+0x38): undefined reference to HomieInternals::BootNormal::BootNormal()' .pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):(.text._ZN14HomieInternals10HomieClassC2Ev+0x3c): undefined reference to HomieInternals::BootConfig::BootConfig()’
.pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):(.text._ZN14HomieInternals10HomieClassC2Ev+0x40): undefined reference to HomieInternals::Logger::Logger()' .pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):(.text._ZN14HomieInternals10HomieClassC2Ev+0x44): undefined reference to HomieInternals::Blinker::Blinker()’
.pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):(.text._ZN14HomieInternals10HomieClassC2Ev+0x48): undefined reference to HomieInternals::Config::Config()' .pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):(.text._ZN14HomieInternals10HomieClassC2Ev+0x4c): undefined reference to HomieInternals::DeviceId::generate()’
.pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):(.text._ZN14HomieInternals10HomieClassC2Ev+0x69): undefined reference to HomieInternals::BootStandalone::BootStandalone()' .pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):(.text._ZN14HomieInternals10HomieClassC2Ev+0x72): undefined reference to HomieInternals::BootNormal::BootNormal()’
.pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):(.text._ZN14HomieInternals10HomieClassC2Ev+0x7d): undefined reference to HomieInternals::BootConfig::BootConfig()' .pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):(.text._ZN14HomieInternals10HomieClassC2Ev+0x96): undefined reference to HomieInternals::Logger::Logger()’
.pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):(.text._ZN14HomieInternals10HomieClassC2Ev+0xaa): undefined reference to HomieInternals::Blinker::Blinker()' .pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):(.text._ZN14HomieInternals10HomieClassC2Ev+0xb2): undefined reference to HomieInternals::Config::Config()’
.pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):(.text._ZN14HomieInternals10HomieClassC2Ev+0xcd): undefined reference to HomieInternals::Interface::get()' .pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):(.text._ZN14HomieInternals10HomieClassC2Ev+0xdb): undefined reference to HomieInternals::Interface::get()’
.pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):(.text._ZN14HomieInternals10HomieClassC2Ev+0xe4): undefined reference to HomieInternals::Interface::get()' .pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):(.text._ZN14HomieInternals10HomieClassC2Ev+0xed): undefined reference to HomieInternals::Interface::get()’
.pioenvs\nodemcuv2\lib\libsrc.a(Homie.o): In function HomieInternals::HomieClass::HomieClass()': Homie.cpp:(.text._ZN14HomieInternals10HomieClassC2Ev+0xf8): undefined reference to HomieInternals::Interface::get()’
.pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):Homie.cpp:(.text._ZN14HomieInternals10HomieClassC2Ev+0x103): more undefined references to HomieInternals::Interface::get()' follow .pioenvs\nodemcuv2\lib\libsrc.a(Homie.o): In function HomieInternals::HomieClass::HomieClass()‘:
Homie.cpp:(.text._ZN14HomieInternals10HomieClassC2Ev+0x2a0): undefined reference to HomieInternals::DeviceId::generate()' .pioenvs\nodemcuv2\lib\libsrc.a(HomieNode.o): In function HomieNode::~HomieNode()’:
HomieNode.cpp:(.text._ZN9HomieNodeD2Ev+0x20): undefined reference to HomieInternals::Helpers::abort(String const&)' .pioenvs\nodemcuv2\lib\libsrc.a(HomieNode.o):(.text._ZNK9HomieNode11setPropertyERK6String+0xd): undefined reference to HomieInternals::Interface::get()’
.pioenvs\nodemcuv2\lib\libsrc.a(HomieNode.o): In function HomieNode::HomieNode(char const*, char const*, std::function<bool (String const&, HomieRange const&, String const&)> const&)': HomieNode.cpp:(.text._ZN9HomieNodeC2EPKcS1_RKSt8functionIFbRK6StringRK10HomieRangeS5_EE+0x75): undefined reference to HomieInternals::Helpers::abort(String const&)’
.pioenvs\nodemcuv2\lib\libsrc.a(SendingPromise.o):(.text._ZN14HomieInternals14SendingPromise4sendERK6String+0x28): undefined reference to HomieInternals::Interface::get()' .pioenvs\nodemcuv2\lib\libsrc.a(SendingPromise.o):(.text._ZN14HomieInternals14SendingPromise4sendERK6String+0x36): undefined reference to HomieInternals::Interface::get()’
.pioenvs\nodemcuv2\lib\libsrc.a(SendingPromise.o):(.text._ZN14HomieInternals14SendingPromise4sendERK6String+0x51): undefined reference to HomieInternals::Interface::get()' .pioenvs\nodemcuv2\lib\libsrc.a(SendingPromise.o):(.text._ZN14HomieInternals14SendingPromise4sendERK6String+0x64): undefined reference to HomieInternals::Interface::get()’
.pioenvs\nodemcuv2\lib\libsrc.a(SendingPromise.o): In function HomieInternals::SendingPromise::send(String const&)': SendingPromise.cpp:(.text._ZN14HomieInternals14SendingPromise4sendERK6String+0x98): undefined reference to HomieInternals::Interface::get()’
.pioenvs\nodemcuv2\lib\libsrc.a(SendingPromise.o):SendingPromise.cpp:(.text._ZN14HomieInternals14SendingPromise4sendERK6String+0xa8): more undefined references to `HomieInternals::Interface::get()’ follow
collect2.exe: error: ld returned 1 exit status
*** [.pioenvs\nodemcuv2\firmware.elf] Error 1

This setup will help me to work library and examples at same time opposite to commit the code and re-download the code.

Thanks,
John

I’ve just submitted PR with explanation how to use with PlatformIO

Hi @ivankravets,

Thank you for the reply but i am having the different issue here. I have created separate “platformio.ini” project file for individual homie examples. In this case “LightOnOff”. So i can directly open and run example from my local version of the repository. This setup will allow me to quickly test locally developed “Homie” feature.
Following “platformio.ini” file compiling fine, if all “Homie” source code files available within “src/” folder. But current “Homie” source code has a couple of sub-folders and platformio not compiling files within sub- folder.


[platformio]
src_dir = .
lib_extra_dirs = .piolibdeps/, …/…/

[env:nodemcuv2]
platform = GitHub - platformio/platform-espressif8266: Espressif 8266: development platform for PlatformIO
board = nodemcuv2
framework = arduino

lib_deps = AsyncMqttClient
ArduinoJson
Bounce2
ESPAsyncWebServer
Hash


I don’t know, if setup like this achievable or not with platformio.

Could you provide a test project to reproduce this issue?

Hi @ivankravets,

Download the project from https://www.dropbox.com/s/18gg8roh9orprq8/homie-esp8266.zip?dl=0 and open platformio project “homie-esp8266\examples\LightOnOff” using platformio ide and click build. It will throw error during firmware linking process.

Linking .pioenvs\nodemcuv2\firmware.elf
.pioenvs\nodemcuv2\lib\libsrc.a(Homie.o):(.text._ZN14HomieInternals10HomieClassD2Ev+0x0): undefined reference to `HomieInternals::BootConfig::~BootConfig()’

If you look at compiler details it’s only compile files within ""homie-esp8266\src" . It ignored all sub-folder files under “src” directory.

Please read careful “Warning” block in Redirecting...

You should point to a directory WITH LIBRARIES, not to a library. So, just change in your platformio.ini

lib_extra_dirs = ../../../
1 Like

I completely ignored it. It’s working now. Thank you very much for help.