.piolibdeps mess when having several env sections in platformio.ini


#1

libdeps from all environments are stored in the same location. It leads to compilation problems. Alien for current environment libraries blocked compiling process. Look at this compiling log:
my code is here:


#2

That is not a bug of PIO. People mixed multiple libs into the one and ask PlatformIO to depend on OneWire https://github.com/anklimov/Arduino-Temperature-Control-Library/blob/master/library.json#L33
Normally, OneWire library leaves outside DallasTemperature.

  1. Please remove “dependencies” field from https://github.com/anklimov/Arduino-Temperature-Control-Library/blob/master/library.json#L31
  2. Remove .piolibdeps folder
  3. Start build again.

#3

Done. I’ve fixed platformio.ini and kept only two environments: megaatmega2560, due.

  • Remove .piolibdeps folder
  • pio run -e megaatmega2560 SUCCESS
  • pio run -e due FAILED (Not a problem, it fails now)
  • pio run -e megaatmega2560 FAILED - There the problem is. libdeps for due brakes compilation of megaatmega2560.

you can see here:

clean .piolibdeps


#4

Try to add to each env lib_ldf_mode = chain+.


#5

Thanks very much! Problem is solved
Now compiltaion of an environment does not depend on libraries presence of other environments in libdeps directory.


#6

adding this option doesn’t help. Libs for different env’s placed in same directory and it brakes compilation process. While we can successfully build every env one by one with rm -Rf .piolibdeps/ before every compilaton.

The solution would be placing piolibdeps in subfolder for every environment.


#7

We have issue for that