Gần đây tôi đã thực hiện một bước đột phá trong việc xây dựng các hệ thống nhúng dựa trên Linux, rất xa so với các công cụ nhúng thông thường của tôi nơi tôi có tổng số kiểm soát mọi thứ.Yêu cầu làm rõ về kế thừa Yocto
Là một phần trong đó, tôi đang xem xét hệ thống xây dựng Yocto/bitbake/OpenEmbedded.
Có một điều tôi đang vật lộn với và đó là khái niệm phân tầng, vì vậy tôi đang cố gắng tìm ra cách thức mà các lớp sử dụng/ảnh hưởng đến các lớp khác.
Từ hiểu biết của tôi cho đến nay, một tập tin .bb
công thức sử dụng require
chỉ đơn giản bao gồm một tập tin, tương tự như C #include "myheader.h"
mà thường trông cục bộ.
Một tệp .bbappend
trong lớp "phía trên" sẽ tự động bao gồm tệp cơ sở một cách kỳ diệu, sau đó thực hiện thay đổi cho nó, sắp xếp một tài khoản cố định require
.
Ngược lại, các từ khóa inherit
tìm kiếm một tập tin .bbclass
lớp theo cách giống như nó nằm trong .bb
tập tin, và được thừa hưởng tất cả các detials từ họ (loại giống như #include <stdio.h>
đó, một lần nữa thường, trông trong vùng hệ thống (a)).
Vì vậy, phần đầu tiên của câu hỏi của tôi là: sự hiểu biết của tôi có đúng không? Hay tôi quá đơn giản?
Phần thứ hai của câu hỏi của tôi sau đó liên quan đến việc sử dụng BBEXTENDS
theo hiểu biết hiện tại của tôi. Nếu chúng tôi đã có khả năng mở rộng công thức bằng cách sử dụng require
, mục đích của việc liệt kê các công thức nấu ăn đã nói ở biến số BBEXTENDS
là gì?
(a) Vâng, tôi biết họ đang cả hoàn toàn thực hiện phụ thuộc về nơi tiêu đề đến từ đâu, tôi chỉ đơn giản nói về chung sử dụng của họ.