質問:
RTClibライブラリのWireライブラリへの依存
Zilliput
2015-01-31 06:49:08 UTC
view on stackexchange narkive permalink

RTClibライブラリを https://github.com/adafruit/RTClibからダウンロードしました。提供されているすべての例で、 #include <Wire.h> は、スケッチの上部にある #include "RTClib.h" のすぐ上に記述されています。

なぜこれが必要なのですか? RTClibライブラリがWireライブラリの機能を必要とすることは知っていますが、その場合、RTClib.hの上部にある #include <Wire.h> だけではどうしてできないのですか?次のスケッチだけを使用して後者を試しましたが、スケッチをコンパイルできませんでした。

RTClib.h:

  // JeeLabsによるコードhttp:// news.jeelabs.org/code ///パブリックドメインにリリースされました!お楽しみください!#ifndef_RTCLIB_H_#define _RTCLIB_H_#include <Wire.h> ...#endif // _RTCLIB_H_  

Sketch:

  #include "RTClib.h "void setup(){} void loop(){}  
さらに、ユーザーに公開されるヘッダー関数にライブラリを含めることは一般的に悪い習慣です。これは、複数の定義などで奇妙なバグが発生する可能性があるためです。
1 回答:
BrettAM
2015-01-31 07:36:27 UTC
view on stackexchange narkive permalink

ここではあまり形式的ではありませんが、arduino IDEは、コンパイルに含めるライブラリを決定するときに、トップレベルのスケッチに含まれるライブラリを確認します。

RTClib.hのみが意味をなします。 Wire.hを含めますが、IDEはWireをコンパイルリストに追加するための情報をそのように取得しません。他のライブラリを使用するライブラリの実装を少し面倒にするのはIDEの癖です。



このQ&Aは英語から自動的に翻訳されました。オリジナルのコンテンツはstackexchangeで入手できます。これは、配布されているcc by-sa 3.0ライセンスに感謝します。
Loading...