Pytanie:
Zależność biblioteki RTClib od biblioteki Wire
Zilliput
2015-01-31 06:49:08 UTC
view on stackexchange narkive permalink

Pobrałem bibliotekę RTClib ze strony https://github.com/adafruit/RTClib. W każdym podanym przykładzie #include <Wire.h> jest zapisywane bezpośrednio nad #include „RTClib.h” u góry szkicu.

Dlaczego jest to konieczne? Wiem, że biblioteka RTClib wymaga funkcjonalności biblioteki Wire, ale jeśli tak jest, dlaczego nie mogę po prostu #include <Wire.h> na górze RTClib.h? Próbowałem tego drugiego, nawet używając tylko poniższego szkicu, ale mój szkic nie mógł się skompilować.

RTClib.h:

  // Code by JeeLabs http: // news.jeelabs.org/code/// Udostępniony do domeny publicznej! Ciesz się! #Ifndef _RTCLIB_H_ # define _RTCLIB_H_ # include <Wire.h> ... # endif // _RTCLIB_H_  

Szkic:

  #include "RTClib.h "void setup () {} void loop () {}  
Ponadto ogólnie złą praktyką jest dołączanie bibliotek do funkcji nagłówka, które są ujawniane użytkownikowi, ponieważ często może to prowadzić do dziwnych błędów z wieloma definicjami / itp.
Jeden odpowiedź:
BrettAM
2015-01-31 07:36:27 UTC
view on stackexchange narkive permalink

Niezbyt formalne tutaj, arduino IDE sprawdza, które biblioteki są uwzględnione w szkicu najwyższego poziomu, decydując, które biblioteki uwzględnić w kompilacji.

Miałoby sens tylko RTClib.h include Wire.h tak, ale IDE nie otrzymuje informacji, aby w ten sposób dodać Wire do listy kompilacji. Jest to dziwactwo IDE, które sprawia, że ​​wdrażanie bibliotek korzystających z innych bibliotek jest nieco bardziej bolesne.



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...