Thư viện RTClib phụ thuộc vào thư viện Dây


7

Tôi đã tải xuống thư viện RTClib từ https://github.com/adafbean/RTClib . Trong mọi ví dụ được cung cấp, #include <Wire.h>được viết ngay phía trên #include "RTClib.h"ở đầu bản phác thảo.

Tại sao điều này là cần thiết? Tôi biết thư viện RTClib yêu cầu chức năng của thư viện Dây nhưng, nếu đây là trường hợp, tại sao tôi không thể #include <Wire.h>đứng đầu RTClib.h? Tôi đã thử cái sau, thậm chí chỉ sử dụng bản phác thảo sau, nhưng bản phác thảo của tôi không biên dịch được.

RTClib.h:

// Code by JeeLabs http://news.jeelabs.org/code/
// Released to the public domain! Enjoy!

#ifndef _RTCLIB_H_
#define _RTCLIB_H_

#include <Wire.h>
...

#endif // _RTCLIB_H_

Phác thảo:

#include "RTClib.h"
void setup() {}
void loop() {}

2
Ngoài ra, thông thường việc bao gồm các thư viện trong các chức năng tiêu đề được hiển thị cho người dùng thường là do thực tế thường có thể dẫn đến các lỗi kỳ lạ với nhiều định nghĩa / v.v.
Chim cánh cụt vô danh

Câu trả lời:


4

Không trở nên quá trang trọng ở đây, IDE arduino xem xét các thư viện nào được đưa vào bản phác thảo cấp cao nhất khi quyết định các thư viện sẽ bao gồm trong quá trình biên dịch.

Sẽ có ý nghĩa khi chỉ RTClib.h bao gồm Wire.h có, nhưng IDE không nhận được thông tin để thêm Dây vào danh sách biên dịch theo cách đó. Đó là một điều không hay về IDE khiến cho việc triển khai các thư viện sử dụng các thư viện khác trở nên khó khăn hơn một chút.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.