Pages: [1]   Go Down
Author Topic: Arduino IDE 0022 buggata?  (Read 1709 times)
0 Members and 1 Guest are viewing this topic.
Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 333
Posts: 23012
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
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.
Logged


0
Offline Offline
Faraday Member
**
Karma: 31
Posts: 2908
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

La 0018 lavora con quel codice, ho provato.
Cosa cambia non lo so.
Logged

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

0
Offline Offline
Shannon Member
****
Karma: 132
Posts: 10508
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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>
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 333
Posts: 23012
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley-lol
Logged


0
Offline Offline
Shannon Member
****
Karma: 132
Posts: 10508
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

0
Offline Offline
Faraday Member
**
Karma: 31
Posts: 2908
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

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

0
Offline Offline
Shannon Member
****
Karma: 132
Posts: 10508
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

magari è proprio uno di questi di meccanismi che non trattando correttamente il template/class fa casino....
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 333
Posts: 23012
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Segnalo il problema.
Logged


0
Offline Offline
Shannon Member
****
Karma: 132
Posts: 10508
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

prima sarebbe da capire il problema. Ovvero provare a compilare a mano per capire se il problema è il compilatore, l'IDE o i parametri.
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

0
Offline Offline
Faraday Member
**
Karma: 31
Posts: 2908
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

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

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 333
Posts: 23012
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged


Pages: [1]   Go Up
Jump to: