Oke, ini cara kerjanya, dan saya memeriksanya untuk memastikan.
Tentu Anda bisa menggunakan jalur keras, tetapi setiap programmer benci menggunakan jalur keras. Mereka tidak portabel sama sekali, dan mereka mengunci program Anda di tempat. Anda menggunakan tautan lunak atau keras ke file dalam proyek (lihat halaman manual di "ln"). Tapi, ... bicarakan jelek! Jadi pertanyaannya adalah bagaimana melakukannya dengan "benar"? Kuncinya adalah belajar dengan parameter apa dan di jalur apa C / C ++ berjalan.
Anda akan menemukan kesimpulannya TIDAK intuitif sama sekali. Memotong untuk mengejar: jalur relatif tidak berfungsi dengan benar. Sekarang kenapa?
Tetapi pertama-tama, izinkan saya menjelaskan mengapa ada orang yang ingin menempatkan file program di luar direktori proyek. Pemrogram suka menulis kelas program, struct, metode, fungsi, makro, dll., Sekali. Segera setelah programmer memadatkan fragmen program, ia ingin meletakkan file-file tersebut di pohon yang sama dan melanjutkan. Setiap program sesudahnya dapat menggunakan perpustakaan pribadi itu. Selain itu, dengan memiliki file di tempat utama, Anda tidak akan memiliki banyak salinan dan versi masing-masing. Satu perpustakaan pribadi untuk banyak program pribadi.
Pada 1.6.13 (Teensy belum mendukung 1.8. *), Relatif termasuk mulai dari perpustakaan , bukan direktori Anda. Tampaknya filter ano-ke-C (ingat bahwa Arduino melakukan "konversi" ke target kemudian memanggil kompiler C / C ++) mulai di mana Anda menginstal pohon Arduino Anda. Dalam kasus saya, saya menginstal di "~ / bin / arduino". Rumah Teensy adalah "./hardware/teensy". Seluruh path home untuk pustaka adalah "~ / bin / arduino / hardware / teensy / avr / libraries" di mana Anda akan menemukan semua pohon program dukungan.
Dalam file sumber, pernyataan '#include "test.hpp"' dengan benar memilih file dari direktori Anda saat ini. NAMUN, jika Anda menggunakan '#include "../test.hpp",' jalur sertakan tidak dimulai di direktori proyek Anda. Sebaliknya itu dimulai di "./libraries"! Jadi jalur yang dihasilkan adalah:
#include "../test.hpp" ==> ./arduino/hardware/teensy/avr/libraries/test.hpp
Kesimpulannya tidak ada cara bersih untuk membuat pohon alat Anda sendiri di direktori terdekat. Satu-satunya kursus adalah untuk melakukan pekerjaan Anda di perpustakaan Arduino dan mengetahui aturan-aturan itu juga.