Ok, ecco come funziona e l'ho verificato per accertarmi.
Sicuramente puoi usare percorsi difficili, ma ogni programmatore odia usare percorsi difficili. Non sono affatto portatili e bloccano il programma in posizione. Si utilizzano collegamenti soft o hard ai file nel progetto (cercare le pagine man su "ln"). Ma ... parla di brutti! Quindi la domanda è come farlo "correttamente"? La chiave sta imparando con quali parametri e in quale percorso viene eseguito il compilatore C / C ++.
Scoprirai che la conclusione NON è affatto intuitiva. Taglio all'inseguimento: i percorsi relativi non funzionano correttamente. Ora perché?
Ma prima, lasciami spiegare perché qualcuno vorrebbe posizionare i file di programma fuori dalla directory del progetto. I programmatori come scrivere classi di programmi, strutture, metodi, funzioni, macro, ecc., Una volta. Non appena il programmatore solidifica il frammento del programma, desidera mettere i file in un albero comune e andare avanti. In seguito, ogni programma potrebbe utilizzare quella libreria privata. Inoltre, avendo i file in una posizione centrale, non avrai più copie e versioni di ciascuno. Una libreria privata per molti programmi privati.
A partire dalla 1.6.13 (Teensy non supporta ancora la 1.8. *), Relativo include start dalla libreria , non dalla tua directory. Sembra che il filtro da ano-a-C (ricorda che Arduino esegue una "conversione" nella destinazione quindi chiama il compilatore C / C ++) inizia dove hai installato l'albero di Arduino. Nel mio caso, ho installato in "~ / bin / arduino". La casa di Teensy è "./hardware/teensy". L'intero percorso home per le librerie è "~ / bin / arduino / hardware / teensy / avr / libraries" dove troverai tutti gli alberi del programma di supporto.
In un file sorgente, l'istruzione "#include" test.hpp "'preleva correttamente il file dalla directory corrente. TUTTAVIA, se si utilizza '#include "../test.hpp",' il percorso include non si avvia nella directory del progetto. Invece inizia in "./libraries"! Quindi il percorso risultante è:
#include "../test.hpp" ==> ./arduino/hardware/teensy/avr/libraries/test.hpp
In conclusione, non esiste un modo pulito per creare il proprio albero di strumenti in una directory vicina. L'unico corso è impegnare il tuo lavoro nella libreria di Arduino ed essere consapevole anche di quelle regole.