[PlatformIO] How to build a library to share across projects?
sbrinkmann last edited by
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.cppand 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?