Go Down

Topic: Arduino IDE 0022 buggata? (Read 1 time) previous topic - next topic

leo72

A me pare che la versione 0022 dell'IDE di Arduino sia peggiore della precedente.
Se tento di compilare il codice che si trova a questa pagina mi restituisce errore sulla dichiarazione di "T" dicendomi :
Code: [Select]

error: expected ',' or '...' before '&' token
error: ISO C++ forbids declaration of 'T' with no type
error: 'T' has not been declared


mentre con la 0021 lo stesso codice si compila correttamente.
Io non conosco il C++ ma da quanto ho letto in rete mi pare che la dichiarazione sia corretta. Poi se l'IDE 0021 lo compila, credo che non sia sbagliato. Qualcuno più bravo di me mi conferma la correttezza del codice? Se è giusto, segnalo il bug.

La 0018 lavora con quel codice, ho provato.
Cosa cambia non lo so.
AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

lesto

a me più che un'errore di arduino sembra un aggiornamento dello standard del linguaggio... sicuri che sulle vecchie versioni compila tranquillo e non da per caso un warning "deprecated"?
provate a sostituire <class T> con <template T>
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

leo72

Ma l'IDE non dovrebbe fare solo da frontend al compilatore?
Eppure sullo stesso computer con la 0021 il codice si compila, con la 0022 no.

Mi pare strano. Ripeto, io non conosco le classi ed i template del C++ però vedo che l'errore viene sollevato solo sulla 0022.

PS:
con <template T> le cose peggiorano  XD

lesto

infatti, per questo dico che secondo me è il compilatore... probabilmente la versione 22 passa dei nuovi parametri, oppure è proprio cambiata la versione di compilatore (però allora su linux dovrebbe funzionare lo stesso visto che come compilatore usa il classico GCC installato esternamente all'IDE)
che errore ti dà usando template?
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Ciao leo, su che quale sistema operativo stai facendo la prova?

Quote
Ma l'IDE non dovrebbe fare solo da frontend al compilatore?


Si esatto, però se a gcc non fornisci argomenti corretti potrebbe andare in errore.

Domandati come mai non devi dichiarare le funzioni utente, l'ide aggiunge il prototipo per te, cioè c'è un preprocessore che modifica il pde lo fa diventare cpp e aggiunge ciò che manca.

Ciao.
AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

lesto

magari è proprio uno di questi di meccanismi che non trattando correttamente il template/class fa casino....
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

leo72


lesto

prima sarebbe da capire il problema. Ovvero provare a compilare a mano per capire se il problema è il compilatore, l'IDE o i parametri.
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Ho compilato a mano, a me da solo warning:
sketch_feb06a.cpp: In function 'int EEPROM_readAnything(int, T&) [with T = config_t]':
sketch_feb06a.cpp:32:41:   instantiated from here
sketch_feb06a.cpp:19:15: warning: comparison between signed and unsigned integer expressions
sketch_feb06a.cpp: In function 'int EEPROM_writeAnything(int, const T&) [with T = config_t]':
sketch_feb06a.cpp:43:46:   instantiated from here
sketch_feb06a.cpp:10:15: warning: comparison between signed and unsigned integer expressions

Però potrebbe essere che ho dato dei parametri errati a gcc.
gcc version 4.5.0, avr-libc-1.6.7-2.fc8.

Con L'ide questi non si vedono perche soppressi, forse per evitare di confondere il principiante.
Ciao.
AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

leo72

Beh, visto che l'IDE (per stessa ammissione dei suoi sviluppatori) è indirizzata ad un'utenza alle prime armi (come me), se qualcosa è stato modificato in "background" allora forse queste modifiche sono da rivedere. Cmq la segnalazione l'ho fatta, vedremo cosa risponde il team di sviluppo.

Go Up