Go Down

Topic: Nuovi sviluppi IDE 1.6.x (Read 63150 times) previous topic - next topic

Testato

infatti concordo che la questione conflitti non e' urgentissima, in tutti questi anni e' venuta fuori solo ora con la issue di Nico (che conosco  :) )

Mentre il poter usare un .h non solo nella dir del .ino (come e' oggi) ma in relative subdir del .ino e' e' pieno google di richieste in tal senso.
Spero si sia capito che questa funzione nulla implica sul discorso conflitti, non perche' non esiste il problema, ma perche' non lo altera di un millimetro

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

astrobeed

Cosa e come dovrebbe l'IDE fare nella temp ? Mi pare un bel casotto
Non puoi avere la botte ubriaca e la moglie piena, o era il contrario ?  :D
Ovviamente tocca dare delle regole e dei limiti, però se nelle prossime versioni includono la possibilità di usare delle subdirectory nella cartella dello sketch già sarebbe una bella cosa, la modifica da fare al IDE è abbastanza semplice, si tratta solo di copiare anche le subdir in modo che l'include può usare  "..\" come path di default e indicare solo la subdir dove si trova il file.
Dopo provo a simulare manualmente la cosa, cioè copio la cartella nella dir tmp e vediamo se compila, mi sa che dovrò proteggerla da scrittura perché quasi sicuramente viene cancellato tutto nella tmp prima di copiare i vari file .cpp.


Testato

#1082
May 04, 2015, 04:20 pm Last Edit: May 04, 2015, 04:20 pm by Testato
questo che dici e' un ulteriore steppettino avanti,  mentre la soluzione piu' base possibile e' proprio che va a copiare direttamente nella tmp, perche' ad oggi il .h presente insieme al .ino li' va a finire, e che ci va a finire anche il .h di eventuale subdir non cambia nulla sul discorso conflitti

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

PaoloP

Aggiornamento sullo sviluppo.
Quote
ARDUINO 1.6.4

[ide]
* Restored previous "error" colour in black lower part of the IDE
* Relaxed IDE checks against libraries versions
* Fixed colour of 'char' keyword. Thanks @mixania
* Tools submenu show selected subentry. Thanks @PaulStoffregen
* Boards and Libraries Managers command line (with contribs from @Lauszus): --install-board "arduino:Arduino SAM Boards (32-bits ARM Cortex-M3):1.6.3" and --install-library "Bridge:1.0.1". Version can be omitted: if omitted, latest version available is automatically picked
* Warning levels can be set in File > Preferences
* When compilation fails, editor highlights the reported row
* Windows and MacOSX: updated bunbled JVM to 1.8.0_45 (latest available atm)
* Disabled "uncertified" warning (requires avr core >= 1.6.6, sam core >= 1.6.4)
* Additional boards/cores can be listed specifying comma separated list of package_SOMETHING_index.json url in File > Preferences
* MacOSX: fixed wrong sketch opened when double clicking on a .ino file

[libraries]
* Bridge fixes

lesto

#1084
May 04, 2015, 07:37 pm Last Edit: May 04, 2015, 07:44 pm by lesto
scusate se no ho letto tutto ma son stanchino.

Il problema è che arduino copia tutto il necessario in una cartella temporanea, e quindi tutti path RELATIVI vanno a farsi benedire; quelli assoluti funzionano in quanto assoluti.

Quote
Sia su gcc che su Arduino non compila se b.h sta in un'altra cartella.
non è vero; OVVIAMENTE devi metere il path relativo alla cartella, che gcc è in gradi di capire, arduino rompe questo concetto.

E questo SENZA usare l'opzione -I; essa va usata solo se hai header che non riesci a raggiungre con path relativi. Però poi i file inclusi con il -I a loro volt POSSONO usare path relativi alla loro posizione!

guarda come funziona la cartella "avr" di avr-gcc e ti accorgerai che usa tantissimo questo sistema,,,

Quote
Basta dare un'occhiata al verbose della compilazione per rendersi conto di quanto sono complesse le varie righe di comando per gcc e g+, sopratutto il dedalo di percorsi da dichiarare.
ma il bello è che NON ne hanno bisogno! e per di più NON c'è bisogno di muovere il sorgente nella temp, puoi dire a gcc di buttare lì solo il compilato (ed eventualmente anche il precompilato, se vuoi dare un'occhiata a cosa sta combinando, molto utile per debuggare #ifdef e simili)

per esempio, se si usassero in modo corretto le path relativi (unico caso che arduino lascia usare le sottodirectory correttamente è se la cartella si chiama "utils", BTW) a questo punto per compilare un impotetico sketch si può creare nella temp il main.c, e compilarlo con qualcosa simile a

Code: [Select]
gcc -I path-a-liberie-arduino -I path-a-libreire-utente -I path-cartella-sketch -o cartella-di-output-compilato

UN solo comando. TRE include. UNA destinazione del compilato

tempo fa proposi una pull requestce faceva qualcosa di simile (avevo tenuto il sistema di copia dei file per mantenere gli include "piatti", ma poi le loro sotto-cartelle erano copiate e quindi funzionali)


edit: nope, la pull request è stata persa nella mia niubbaggine nel gittare all'epaca (parliamo di 2012!)

riedit: trovata!!!
https://github.com/arduino/Arduino/pull/116

e pare essere stata integrata.... ma funziona solo per la cartella libraries! dovrebbe essere estesa anche a tutte le altre cartelle...

ririedit: emmipareva che lo avessi fatto per tutte, ma quando è stata "integrata" è stato fatto solo come caso speciale per la libreria VFAT!!! ahah

Quote
This replaces #116 that triggered recursive compilation for every library, possibly incurring in compilation errors: it would have compiled things like documentation and examples (that, it turns out, usually don't compile) thus breaking things that used to work fine.
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Testato

#1085
May 04, 2015, 11:05 pm Last Edit: May 04, 2015, 11:08 pm by Testato
ti riassumo brevemente:
- abbiamo verificato che sia DirIno\a.h che c:\a.h sono attive come modalita' d'inclusione.
- abbiamo richiesto che si aggiunga alla path di compilazione anche DirIno\file\a.h
- abbiamo assodato che il problema di eventuali conflitti, ad oggi presente con entrambe le modalita' gia' attive, non verrebbe ne' migliorato ne' peggiorato da questa ulteriore possibilita' di inclusione
- il problema del conflitto causato dal calderone TMP di compilazione e' problema separato da questo e che va risolto in separata sede

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

lesto

Quote
- il problema del conflitto causato dal calderone TMP di compilazione e' problema separato da questo e che va risolto in separata sede
il tmp in realtà serve solo per creare il main a partire dall'ino; se usiamo il sistema di usare TMP solo per metterci il main generato e i file oggetto/hex abbiamo risolto credo tutto.

ah be certo, resta il problema che invece che includere genericamente "libraries" include ogni singola libreria, quindi per caso un nome tra due librerie può andare in conflitto... e sistemare questo problema significa rompere la compatibilità (dovresti includere "wire/wire.h" e non "wire.h"...) (la libreria IR è un esempio famoso del problema)

però in compenso se ci sono due cartelle wire, vince quella con il primo (o l'ultimo? non ricordo) include nella stringa gcc, quindi se in Libraries metto una cartella "wire" viene usata questa, e se nella cartella dello sketc metto un alta wire ancora quetsa dovrebbe vincere su tutte le altre.., ma FORSE questo succede anche ora.
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Federico Fissore

Ricordate di aprire una issue su github
Have you upgraded the Yún? If you've just got it, then it needs to be upgraded! Check out the tutorial at http://is.gd/1jUPNF

Testato

#1088
May 05, 2015, 09:10 am Last Edit: May 05, 2015, 02:25 pm by Testato
Opened

Grazie Federico per l'interessamento
https://github.com/arduino/Arduino/issues/3080

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Testato

Questo e' l'esempio che ho caricato nella Issue

Code: [Select]
#include "test1.h"       // This work
#include "C:\test2.h"       // This work
#include "SomeDir\test3.h"  // This is the ISSUE request

void setup() {
}

void loop() {
}
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy