lib_dir

Type: DirPath | Multiple: No | Default: “<Project>/lib

You can put your own/private libraries here. The source code of each library should be placed in separate directory, like lib/private_lib/[here are source files]. This directory has the highest priority for Library Dependency Finder (LDF).

The default value is lib, meaning a lib directory located in the root of the project.

This option can also be configured by the global environment variable PLATFORMIO_LIB_DIR.

For example, see how the Foo and Bar libraries are organized:

|--lib
|  |--Bar
|  |  |--docs
|  |  |--examples
|  |  |--src
|  |     |- Bar.c
|  |     |- Bar.h
|  |--Foo
|  |  |- Foo.c
|  |  |- Foo.h
|- platformio.ini
|--src
   |- main.c

Then in src/main.c you should use:

#include <Foo.h>
#include <Bar.h>

// rest of H/C/CPP code

PlatformIO will find your libraries automatically, configure the preprocessor’s include paths and build them.