プロジェクトを自己完結させたい場合は、ライブラリの依存関係をスケッチフォルダに置くことができます。したがって、ロギングライブラリ依存関係を持つFooスケッチのフォルダ構造は、次のようになります。
Foo
|_Foo.ino
|_src
|_Logging
|_Logging.h
|_Logging.cpp
Foo.inoには、次のようなライブラリを含めます。
#include "src/Logging/Logging.h"
残念ながら、一部のライブラリは誤ったインクルード構文を使用しており、ライブラリがライブラリフォルダーの1つにインストールされている場合は機能しますが、スケッチフォルダーにある場合は機能しません。Loggingライブラリは正しいインクルード構文を使用しますが、ライブラリをスケッチフォルダに配置するために、これを修正する必要がある場合があります。たとえば、Barという名前のライブラリがあり、Bar.cppに次のように表示されているとします。
#include <Bar.h>
スケッチフォルダーにインストールされている場合、Bar.hは標準インクルードパスの1つに配置されないため、Bar.cppを編集してインクルード構文を次のように変更する必要があるため、これは機能しません。
#include "Bar.h"
これにより、ローカルフォルダーでインクルードファイルが検索されます。
このシステムの欠点は、ライブラリの複数のコピーが作成される可能性があるため、各コピーを更新または変更する作業が増えることです。もちろん、各プロジェクトには、他のプロジェクトで使用されているのと同じライブラリに対して行った更新の影響を受けない、既知の動作するバージョンのライブラリを含めることができるので、これも利点になります。
通常は、ライブラリの依存関係を通常の方法でインストールする方法の指示をプロジェクトのドキュメントに追加します。これは、平均的なArduinoユーザーの能力の範囲内である必要があります。ライブラリの特定のバージョンが必要な場合は、それを文書化します。ただし、Arduino IDEの使用に慣れていない人に自己完結型のプロジェクトを引き渡したい場合があり、その場合は、必要なすべてのサードパーティライブラリに上記のシステムを使用しました。