Boost logo

Boost Users :

Subject: [Boost-users] [asio] compiling on cygwin
From: Red Taza (redtaza_at_[hidden])
Date: 2012-02-11 10:46:55

Hi,I have a program that works fine on Solaris and Linux and I want to port it to work to on Cygwin, but am having issues getting Boost.asio to compile.The problem is it wants me to set some defines which I believe makes it use the native Windows socket interface (winsock) where as I want it to use the Cygwin socket interface because the program uses other libraries that expect the Cygwin socket interface. I want to be able to compile a program like this:
$ cat #include <net-snmp/net-snmp-config.h>#include <net-snmp/net-snmp-includes.h>#include <net-snmp/agent/net-snmp-agent-includes.h>#include <boost/asio.hpp>
int main() {}
To get the above code to compile when only including boost/asio.hpp I have to use the following:
g++ -D_WIN32_WINNT=0x0501 -D__USE_W32_SOCKETS \ -I$BOOST_ROOT/include -I$NETSNMP_HOME/include \ \ -L$BOOST_ROOT/lib -lboost_system -lws2_32
But the net-snmp headers fail when added, where as when I remove the include for the asio header file and remove -D_WIN32_WINNT=0x0501, -D__USE_W32_SOCKETS and -lws2_32 from the compile line then the net-snmp headers compile fine - but the asio will fail.g++ -I$BOOST_ROOT/include -I$NETSNMP_HOME/include -L$BOOST_ROOT/lib -lboost_system
Is there a define I can set so that boost.asio uses the Cygwin sockets? I would have thought that this would be the expected behaviour when compiling on Cygwin.
The version of Cygwin is:$ uname -aCYGWIN_NT-6.0 toshiba-PC 1.7.10(0.259/5/3) 2012-02-05 12:36 i686 Cygwin
The version of boost is:boost_1_48_0

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at