私はMacの〜/ Documents/Arduino/librariesディレクトリにインストールした別のライブラリを参照するArduinoライブラリ(事実上C++クラス)を作成しようとしています。私が書いているライブラリの.cppファイルの上部にArduino IDEを使用して別のライブラリのライブラリを含めることは可能ですか?
は、私はどちらも仕事の...
#include <ReferencedLibrary.h>
と
#include "ReferencedLibrary.h"
を試してみました。私は〜/ Documents/Arduinoディレクトリのスケッチから正常に#include <ReferencedLibrary.h>
することができます。私は何かを見逃しているのですか、これはArduino IDE/makefileの制限ですか?回避策はありますか?
ハックのように見えるかもしれませんが、全体の処理パラダイムに一致します。基本的にスケッチとは、すべての作業要素を融合するために使用するものであり、スケッチ内のすべてのグルーロジックを非常に適切なものにすることです。 – SRM
これは「悪」です。ライブラリのアイデアは、機能を抽象化し、簡潔なAPIを使用して使用することです。 '#include" lib.h "'はライブラリを取得するために必要なものでなければなりません(ロードパスにあると仮定します)。ライブラリのクライアントがライブラリの内部動作を知ることを要求することは、まったく間違っています。 –
ユーザは、参照されたすべてのライブラリをメインスケッチに含める必要があるとの議論があります。しかし、このようにしても、依存ライブラリーヘッダーで定義されているマクロまたは配列の複数の定義エラーが生成され、依存ソースファイルのヘッダーを除外すると、それらの同じ記号を見つけることができません。ライブラリの依存関係を満たすための唯一の方法は、すべてのヘッダとソースを同じディレクトリに含めることです(あるいは、すべてのinclude文を実行し、相対パスに変更します。 –