Hi, Thanks for the prompt reply. The compile warning is:
In file included from /usr/local/include/libssh2/libssh2.h:140:1: warning: "INVALID_SOCKET" redefined In file included from /usr/local/include/snmp_pp/snmp_pp.h:71, from snmpThreadData.h:13, from snmpThreadData.cpp:4: /usr/local/include/snmp_pp/uxsnmp.h:49:1: warning: this is the location of the previous definition So the conflict is I end up with headers both from libssh2 and the snmp++ library (http://www.agentpp.com/snmp_pp3_x/snmp_pp3_x.html). Libssh2 defines it as: #define INVALID_SOCKET -1 and SNMP++ defines it as: #ifndef INVALID_SOCKET #define INVALID_SOCKET ((SnmpSocket)(~0)) // value for invalid socket #endif Note that the SNMP++ header has an #ifdef. If I make the libssh2 come first, then the ifdef will stop it from being redefined... but it will be the wrong value (and type) for SNMP++. I'm sure I can craft a workaround. Mostly I was perplexed at why two different libraries which are otherwise both disciplined about defining their constants with a namespace prefix both chose to define this one symbol like this, like it was some magical special symbol that everyone knew about. - matt --- On Fri, 3/2/12, Alexander Lamaison <sw...@lammy.co.uk> wrote: > From: Alexander Lamaison <sw...@lammy.co.uk> > Subject: Re: INVALID_SOCKET symbol conflict > To: "libssh2 development" <libssh2-devel@cool.haxx.se> > Date: Friday, March 2, 2012, 7:43 AM > On 2 March 2012 15:13, Lawson <lawso...@yahoo.com> > wrote: > > > > I notice that nearly all the defines in libssh2.h use > the LIBSSH2_ prefix, except for INVALID_SOCKET. It seems > to be on purpose but I don't understand why. Is it a > Windows thing? > > It is a Windows Winsock constant that represents the only > value > returned by socket() that is guaranteed not to be a valid > socket > handle. libssh2 defines it in the header for other > platforms to help > with portable programming. > > > My issue is that I'm writing an application (on Linux) > which includes headers from multiple libraries, and some of > them also set this symbol to a conflicting value. > > I believe the difference is because on some platforms > sockets are > signed ints and others they are unsigned ints. Can you > give more > details about the conflict. Error messages etc. > > Alex > > -- > Easy SFTP for Windows Explorer (http://www.swish-sftp.org) > > _______________________________________________ > libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel > _______________________________________________ libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel