Hi Sue: Have a look at this thread, it has some information regarding building C++ DSO module for Ganglia:
http://www.mail-archive.com/[email protected]/msg05278.html Have you tried including gm_metric.h instead of ganglia.h? Cheers, Bernard On Tue, May 4, 2010 at 9:43 AM, Susan Kasahara <[email protected]> wrote: > Hi ganglia developers, > I'm a relatively new user of Ganglia. I'm using it to monitor a data > acquisition system, > in which each component of the data acquisition system will have the > possibility of > injecting custom metrics. I'm creating a C++ wrapper for the gmetric C > functions to make > it easier to inject the custom metrics, but am having a problem compiling > code that > uses the ganglia.h header file with a C++ compiler. This is that when > compiling > code that has this: > > extern "C" { > #include ganglia.h > } > > I receive errors like this: > /fnal/ups/prd/ganglia/v3_1_2/Linux64bit+2.6-2.5/include/ganglia.h:24: error: > conflicting declaration ‘typedef struct > Ganglia_pool* Ganglia_pool’ > /fnal/ups/prd/ganglia/v3_1_2/Linux64bit+2.6-2.5/include/ganglia.h:24: error: > ‘struct Ganglia_pool’ has a previous > declaration as ‘struct Ganglia_pool’ > /fnal/ups/prd/ganglia/v3_1_2/Linux64bit+2.6-2.5/include/ganglia.h:25: error: > conflicting declaration ‘typedef struct > Ganglia_gmond_config* Ganglia_gmond_config’ > /fnal/ups/prd/ganglia/v3_1_2/Linux64bit+2.6-2.5/include/ganglia.h:25: error: > ‘struct Ganglia_gmond_config’ has a > previous declaration as ‘struct Ganglia_gmond_config’ > /fnal/ups/prd/ganglia/v3_1_2/Linux64bit+2.6-2.5/include/ganglia.h:26: error: > conflicting declaration ‘typedef struct > Ganglia_udp_send_channels* Ganglia_udp_send_channels’ > /fnal/ups/prd/ganglia/v3_1_2/Linux64bit+2.6-2.5/include/ganglia.h:26: error: > ‘struct Ganglia_udp_send_channels’ has a > previous declaration as ‘struct Ganglia_udp_send_channels’ > /fnal/ups/prd/ganglia/v3_1_2/Linux64bit+2.6-2.5/include/ganglia.h:29: error: > field ‘pool’ has incomplete type > /fnal/ups/prd/ganglia/v3_1_2/Linux64bit+2.6-2.5/include/ganglia.h:34: error: > conflicting declaration ‘typedef struct > Ganglia_metric* Ganglia_metric’ > /fnal/ups/prd/ganglia/v3_1_2/Linux64bit+2.6-2.5/include/ganglia.h:28: error: > ‘struct Ganglia_metric’ has a previous > declaration as ‘struct Ganglia_metric’ > > > I find that the errors come from the ganglia.h typedef's: > > typedef struct Ganglia_pool* Ganglia_pool; > typedef struct Ganglia_gmond_config* Ganglia_gmond_config; > typedef struct Ganglia_udp_send_channels* Ganglia_udp_send_channels; > ... > typedef struct Ganglia_metric * Ganglia_metric; > > and that I can fix this problem by redefining the typedef's as: > > typedef struct Ganglia_pool* Ganglia_pool_t; > typedef struct Ganglia_gmond_config* Ganglia_gmond_config_t; > etc. > > and then changing it's use in gmond.c, libgmond.c and gmetric.c to reflect > this naming change. > > Is it possible to have this change implemented in the ganglia distribution? > Or is there a better way? > Thanks in advance for your help. > -Sue Kasahara > > > > ------------------------------------------------------------------------------ > _______________________________________________ > Ganglia-general mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/ganglia-general > ------------------------------------------------------------------------------ _______________________________________________ Ganglia-general mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ganglia-general

