errore di libreria

Sto combattendo con una libreria NFC, per farla funzionare su Arduino UNO ho dovuto commentare questa riga, ed ora funziona tutto:

typedef uint8_t u8;
typedef int8_t  s8;
//typedef uint16_t u16;//<<<---------------------
typedef int16_t  s16;
typedef uint32_t u32;
typedef int32_t  s32;

Questo l’errore che esce durante la compilazione

In file included from G:\Documenti\My eBooks\Elettronica\Arduino\Personale18xx\Sketch\NFC_2_schede\nfc_p2p_target\nfc_p2p_target.ino:19:0:

G:\Documenti\My eBooks\Elettronica\Arduino\Personale18xx\libraries\NFC/nfc.h:42:18: error: conflicting declaration 'typedef uint16_t u16'

 typedef uint16_t u16;

                  ^~~

In file included from C:\Users\Michele\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.3\cores\arduino/Arduino.h:234:0,

                 from sketch\nfc_p2p_target.ino.cpp:1:

C:\Users\Michele\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.3\cores\arduino/USBAPI.h:30:24: note: previous declaration as 'typedef short unsigned int u16'

 typedef unsigned short u16;

                        ^~~

exit status 1
Errore durante la compilazione per la scheda Arduino Uno.

Se commento quella riga la compilazione va a buon fine e sparisce tutto l’errore.

Qualcuno sa spiegarmi come mai? E’ giusto per sapere e magari risolvere in modo corretto.

Purtropo il nome 'u16' è usato da Arduino nel "core" nel modulo USBAPI (arduino/avr/cores/arduino/USBAPI.h) e quindi non puoi redifinirlo :wink:

USBAPI.h, linea 30:

typedef unsigned short u16;

... che poi sempre un uint16_t definisce, per questo la compilazione ti va a buon fine :smiley: :smiley: :smiley:

Guglielmo

Ma non serve di ridefinirlo

Sia la definizione nella libreria che quella nel core indicano un intero senza segno a 16 bit

Coma ha fatto lo OP risolve completamente

gpb01:
... che poi sempre un uint16_t definisce, per questo la compilazione ti va a buon fine :smiley: :smiley: :smiley:

... perché io che ho scritto ? ? ? :smiling_imp:

Guglielmo

Ci siamo incrociati?

... probabile :grin: :grin: :grin:

Guglielmo

Ho capito solo la prima frase di Guglielmo e mi basta, per le mie esigenze conoscitive.
Vorrei solo sapere se c'è un modo elegante per risolvere la questione, modificando la riga, oppure se va bene lasciarla commentata e non ci penso più?

menniti:
.... va bene lasciarla commentata e non ci penso più?

... buona questa, lasciala commentata, tanto è già definita come serve a te :wink:

Guglielmo