A few weeks ago I switched from the Arduino IDE to PlatformIO. Since then developing of MySensors nodes becomes as convenient as it is developing Java or NodeJS applications. Then I tried to build a base library to share common functionality across my different projects. To archive this I've build a PlatformIO library project and added MySensors as dependency, since I want to add or wrap existing MySensors functionality. When I try to build one of my depending projects, LDF resolves the dependency tree as following:
Library Dependency Graph
|-- <BaseLibrary>
| |-- <MySensors> v2.1.0
| | |-- <SPI> v1.0
| | |-- <Wire> v1.0
| | |-- <EEPROM> v1.0
|-- <SPI> v1.0
|-- <MySensors> v2.1.0
| |-- <SPI> v1.0
| |-- <Wire> v1.0
| |-- <EEPROM> v1.0
|-- <EEPROM> v1.0
|-- <ESP8266WiFi> v1.0
But when I add #include <MySensors.h>
to my BaseLibrary.cpp
and build the depending project, the linker shows for each MySensors method the error ... multiple definition ...
. From my understandung the following precompiler statement
#ifndef MySensors_h
#define MySensors_h
should avoid that this happens. Does anyone know how to build a multi project library with a MySensors dependency? Is this possible with the current MySensors design?