[PlatformIO] How to build a library to share across projects?



  • 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?


Log in to reply
 

310
Online

6.7k
Users

7.6k
Topics

80.4k
Posts

Looks like your connection to MySensors Forum was lost, please wait while we try to reconnect.