[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
 

1 out of 1

Suggested Topics


  • Announcements   29 Mar 2014, 17:08

    1

  • Development   12 Mar 2025, 23:39

    11

  • Development   15 Jan 2025, 08:33

    3

  • Development   4 Feb 2025, 12:14

    3

  • Development   14 Jan 2025, 22:07

    3

  • Development   15 Jan 2025, 08:51

    6

0
Online

11.5k
Users

11.1k
Topics

112.8k
Posts