Được rồi, đây là cách nó hoạt động, và tôi đã kiểm tra nó để đảm bảo.
Chắc chắn bạn có thể sử dụng các đường dẫn cứng, nhưng mọi lập trình viên đều ghét sử dụng các đường dẫn cứng. Chúng hoàn toàn không di động và chúng khóa chương trình của bạn tại chỗ. Bạn sử dụng các liên kết mềm hoặc cứng đến các tệp trong dự án (tra cứu các trang man trên "ln"). Nhưng, ... nói về xấu xí! Vì vậy, câu hỏi là làm thế nào để làm điều đó "chính xác"? Điều quan trọng là học với các tham số nào và trình biên dịch C / C ++ chạy trong đường dẫn nào.
Bạn sẽ thấy kết luận KHÔNG trực quan chút nào. Cắt theo đuổi: đường dẫn tương đối không hoạt động chính xác. Bây giờ tại sao?
Nhưng trước tiên, hãy để tôi giải thích lý do tại sao bất cứ ai cũng muốn đặt các tệp chương trình bên ngoài thư mục dự án. Các lập trình viên thích viết các lớp chương trình, cấu trúc, phương thức, hàm, macro, v.v., một lần. Ngay khi lập trình viên củng cố đoạn chương trình, anh ấy / cô ấy muốn đặt các tệp vào một cây chung và tiếp tục. Mọi chương trình sau đó có thể sử dụng thư viện riêng đó. Ngoài ra, bằng cách đặt các tệp ở vị trí trung tâm, bạn sẽ không có nhiều bản sao và phiên bản của mỗi tệp. Một thư viện riêng cho nhiều chương trình riêng tư.
Kể từ 1.6.13 (Teensy chưa hỗ trợ 1.8. *), Họ hàng bao gồm bắt đầu từ thư viện , không phải thư mục của bạn. Dường như bộ lọc ano-C (hãy nhớ rằng Arduino thực hiện "chuyển đổi" thành mục tiêu sau đó gọi trình biên dịch C / C ++) bắt đầu khi bạn cài đặt cây Arduino của mình. Trong trường hợp của tôi, tôi đã cài đặt trong "~ / bin / arduino". Nhà của thiếu niên là "./hardware/teensy". Toàn bộ đường dẫn nhà cho các thư viện là "~ / bin / arduino / phần cứng / youthy / avr / library" nơi bạn sẽ tìm thấy tất cả các cây chương trình hỗ trợ.
Trong tệp nguồn, câu lệnh '#include "test.hpp"' chọn chính xác tệp từ thư mục hiện tại của bạn. TUY NHIÊN, nếu bạn sử dụng '#include "../test.hpp",' đường dẫn bao gồm không bắt đầu trong thư mục dự án của bạn. Thay vào đó, nó bắt đầu trong "./l Thư viện"! Vì vậy, đường dẫn kết quả là:
#include "../test.hpp" ==> ./arduino/hardware/teensy/avr/libraries/test.hpp
Tóm lại, không có cách nào rõ ràng để tạo cây công cụ của riêng bạn trong một thư mục gần đó. Khóa học duy nhất là cam kết công việc của bạn trong thư viện Arduino và nhận thức được các quy tắc đó.