[Tinyos-help] issues including serialsource.h in C++ code

Ákos Maróy darkeye at tyrell.hu
Sat Mar 29 03:11:31 PDT 2008


Hi,

I haven't looked at TinyOS since last fall, and was about to revive a 
project I'm doing with it. I started to upgrade, recompile, etc, and now 
I see that one can't actually include serialsource.h in C++ code, as 
errors are reported. In particular, gcc 4.1.2 gives the following:

/usr/include/serialsource.h:4: error: conflicting declaration ‘typedef 
struct serial_source* serial_source’
/usr/include/serialsource.h:4: error: ‘struct serial_source’ has a 
previous declaration as ‘struct serial_source’


and indeed, the offending line is:

typedef struct serial_source *serial_source;


where the same symbol (serial_source) is used for both the struct name 
and the typedef name. apperantly this is invalid C++, doesn't work even 
if it's included in an extern "C" { ... } clause.

I see the same definition in the old header looked like this:

typedef struct serial_source_t *serial_source;


and this works fine. I wonder if it would be possible to revert to the 
old version, that works in C++ as well?


Akos


More information about the Tinyos-help mailing list