Kérdés:
Az RTClib könyvtár függősége a vezetékes könyvtártól
Zilliput
2015-01-31 06:49:08 UTC
view on stackexchange narkive permalink

Letöltöttem az RTClib könyvtárat a https://github.com/adafruit/RTClib webhelyről. Minden megadott példában a #include <Wire.h> szöveget közvetlenül a vázlat tetején található #include "RTClib.h" fölé írjuk.

Miért van erre szükség? Tudom, hogy az RTClib könyvtár megköveteli a Wire könyvtár funkcionalitását, de ha ez a helyzet, miért nem tudok csak #include <Wire.h> -ot az RTClib.h tetején? Kipróbáltam az utóbbit, még csak a következő vázlatot is használva, de a vázlatomat nem sikerült összeállítani.

RTClib.h:

  // JeeLabs kódja http: // news.jeelabs.org/code/// Közzétételre került! Élvezze! #Ifndef _RTCLIB_H_ # define _RTCLIB_H_ # include <Wire.h> ... # endif // _RTCLIB_H_  

Sketch:

  #include "RTClib.h "void setup () {} void loop () {}  
Ezenkívül általában rossz gyakorlat a könyvtárak felvétele a fejléc funkciókba, amelyek ki vannak téve a felhasználónak, mert ez gyakran páratlan hibákat eredményezhet több definícióval / stb.
Egy válasz:
BrettAM
2015-01-31 07:36:27 UTC
view on stackexchange narkive permalink

Nem túl formális itt, az arduino IDE megvizsgálja, hogy mely könyvtárak szerepelnek a legfelső szintű vázlatban, amikor eldönti, hogy mely könyvtárakat vegye fel az összeállításba.

Csak akkor lenne értelme, ha az RTClib.h tartalmazza a Wire.h-t igen, de az IDE nem kapja meg az információt ahhoz, hogy a Wire-t így hozzáadja az összeállítási listához. Az IDE furcsasága miatt a többi könyvtárat használó könyvtárak megvalósítása kissé fájdalmasabbá válik.



Ezt a kérdést és választ automatikusan lefordították angol nyelvről.Az eredeti tartalom elérhető a stackexchange oldalon, amelyet köszönünk az cc by-sa 3.0 licencért, amely alatt terjesztik.
Loading...