We help IT Professionals succeed at work.
Get Started

Problem with include files

1,712 Views
Last Modified: 2013-11-20
I have a normal MFC application, but when I put the add the following:

#include <pcap/pcap.h>

I all of a sudden get a ton of errors.  I figure it's due to a conflict between winsock header files, but I dont know how to resolve it.

--------------------Configuration: test - Win32 Debug--------------------
Compiling...
HTMLMonitor.cpp
c:\program files\microsoft sdk\include\winsock2.h(109) : error C2011: 'fd_set' : 'struct' type redefinition
c:\program files\microsoft sdk\include\winsock2.h(144) : warning C4005: 'FD_SET' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(88) : see previous definition of 'FD_SET'
c:\program files\microsoft sdk\include\winsock2.h(153) : error C2011: 'timeval' : 'struct' type redefinition
c:\program files\microsoft sdk\include\winsock2.h(209) : error C2011: 'hostent' : 'struct' type redefinition
c:\program files\microsoft sdk\include\winsock2.h(222) : error C2011: 'netent' : 'struct' type redefinition
c:\program files\microsoft sdk\include\winsock2.h(229) : error C2011: 'servent' : 'struct' type redefinition
c:\program files\microsoft sdk\include\winsock2.h(241) : error C2011: 'protoent' : 'struct' type redefinition
c:\program files\microsoft sdk\include\winsock2.h(397) : error C2011: 'sockaddr_in' : 'struct' type redefinition
c:\program files\microsoft sdk\include\winsock2.h(407) : error C2011: 'WSAData' : 'struct' type redefinition
c:\program files\microsoft sdk\include\winsock2.h(467) : warning C4005: 'SO_DONTLINGER' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(411) : see previous definition of 'SO_DONTLINGER'
c:\program files\microsoft sdk\include\winsock2.h(524) : warning C4005: 'AF_IPX' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(469) : see previous definition of 'AF_IPX'
c:\program files\microsoft sdk\include\winsock2.h(552) : warning C4005: 'AF_MAX' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(488) : see previous definition of 'AF_MAX'
c:\program files\microsoft sdk\include\winsock2.h(558) : error C2011: 'sockaddr' : 'struct' type redefinition
c:\program files\microsoft sdk\include\winsock2.h(598) : error C2011: 'sockproto' : 'struct' type redefinition
c:\program files\microsoft sdk\include\winsock2.h(637) : error C2011: 'linger' : 'struct' type redefinition
c:\program files\microsoft sdk\include\winsock2.h(650) : warning C4005: 'SOMAXCONN' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(553) : see previous definition of 'SOMAXCONN'
c:\program files\microsoft sdk\include\winsock2.h(675) : warning C4005: 'FD_READ' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(571) : see previous definition of 'FD_READ'
c:\program files\microsoft sdk\include\winsock2.h(678) : warning C4005: 'FD_WRITE' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(572) : see previous definition of 'FD_WRITE'
c:\program files\microsoft sdk\include\winsock2.h(681) : warning C4005: 'FD_OOB' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(573) : see previous definition of 'FD_OOB'
c:\program files\microsoft sdk\include\winsock2.h(684) : warning C4005: 'FD_ACCEPT' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(574) : see previous definition of 'FD_ACCEPT'
c:\program files\microsoft sdk\include\winsock2.h(687) : warning C4005: 'FD_CONNECT' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(575) : see previous definition of 'FD_CONNECT'
c:\program files\microsoft sdk\include\winsock2.h(690) : warning C4005: 'FD_CLOSE' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(576) : see previous definition of 'FD_CLOSE'
c:\program files\microsoft sdk\include\winsock2.h(1622) : error C2375: 'accept' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(744) : see declaration of 'accept'
c:\program files\microsoft sdk\include\winsock2.h(1643) : error C2375: 'bind' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(749) : see declaration of 'bind'
c:\program files\microsoft sdk\include\winsock2.h(1662) : error C2375: 'closesocket' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(754) : see declaration of 'closesocket'
c:\program files\microsoft sdk\include\winsock2.h(1681) : error C2375: 'connect' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(756) : see declaration of 'connect'
c:\program files\microsoft sdk\include\winsock2.h(1702) : error C2375: 'ioctlsocket' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(761) : see declaration of 'ioctlsocket'
c:\program files\microsoft sdk\include\winsock2.h(1723) : error C2375: 'getpeername' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(766) : see declaration of 'getpeername'
c:\program files\microsoft sdk\include\winsock2.h(1744) : error C2375: 'getsockname' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(771) : see declaration of 'getsockname'
c:\program files\microsoft sdk\include\winsock2.h(1767) : error C2375: 'getsockopt' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(776) : see declaration of 'getsockopt'
c:\program files\microsoft sdk\include\winsock2.h(1788) : error C2375: 'htonl' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(783) : see declaration of 'htonl'
c:\program files\microsoft sdk\include\winsock2.h(1805) : error C2375: 'htons' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(785) : see declaration of 'htons'
c:\program files\microsoft sdk\include\winsock2.h(1822) : error C2375: 'inet_addr' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(787) : see declaration of 'inet_addr'
c:\program files\microsoft sdk\include\winsock2.h(1839) : error C2375: 'inet_ntoa' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(789) : see declaration of 'inet_ntoa'
c:\program files\microsoft sdk\include\winsock2.h(1857) : error C2375: 'listen' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(791) : see declaration of 'listen'
c:\program files\microsoft sdk\include\winsock2.h(1875) : error C2375: 'ntohl' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(795) : see declaration of 'ntohl'
c:\program files\microsoft sdk\include\winsock2.h(1892) : error C2375: 'ntohs' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(797) : see declaration of 'ntohs'
c:\program files\microsoft sdk\include\winsock2.h(1912) : error C2375: 'recv' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(799) : see declaration of 'recv'
c:\program files\microsoft sdk\include\winsock2.h(1937) : error C2375: 'recvfrom' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(805) : see declaration of 'recvfrom'
c:\program files\microsoft sdk\include\winsock2.h(1963) : error C2375: 'select' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(813) : see declaration of 'select'
c:\program files\microsoft sdk\include\winsock2.h(1987) : error C2375: 'send' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(820) : see declaration of 'send'
c:\program files\microsoft sdk\include\winsock2.h(2012) : error C2375: 'sendto' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(826) : see declaration of 'sendto'
c:\program files\microsoft sdk\include\winsock2.h(2038) : error C2375: 'setsockopt' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(834) : see declaration of 'setsockopt'
c:\program files\microsoft sdk\include\winsock2.h(2060) : error C2375: 'shutdown' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(841) : see declaration of 'shutdown'
c:\program files\microsoft sdk\include\winsock2.h(2080) : error C2375: 'socket' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(845) : see declaration of 'socket'
c:\program files\microsoft sdk\include\winsock2.h(2103) : error C2375: 'gethostbyaddr' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(852) : see declaration of 'gethostbyaddr'
c:\program files\microsoft sdk\include\winsock2.h(2122) : error C2375: 'gethostbyname' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(857) : see declaration of 'gethostbyname'
c:\program files\microsoft sdk\include\winsock2.h(2140) : error C2375: 'gethostname' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(859) : see declaration of 'gethostname'
c:\program files\microsoft sdk\include\winsock2.h(2159) : error C2375: 'getservbyport' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(863) : see declaration of 'getservbyport'
c:\program files\microsoft sdk\include\winsock2.h(2178) : error C2375: 'getservbyname' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(867) : see declaration of 'getservbyname'
c:\program files\microsoft sdk\include\winsock2.h(2196) : error C2375: 'getprotobynumber' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(871) : see declaration of 'getprotobynumber'
c:\program files\microsoft sdk\include\winsock2.h(2213) : error C2375: 'getprotobyname' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(873) : see declaration of 'getprotobyname'
c:\program files\microsoft sdk\include\winsock2.h(2233) : error C2375: 'WSAStartup' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(877) : see declaration of 'WSAStartup'
c:\program files\microsoft sdk\include\winsock2.h(2251) : error C2375: 'WSACleanup' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(881) : see declaration of 'WSACleanup'
c:\program files\microsoft sdk\include\winsock2.h(2268) : error C2375: 'WSASetLastError' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(883) : see declaration of 'WSASetLastError'
c:\program files\microsoft sdk\include\winsock2.h(2285) : error C2375: 'WSAGetLastError' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(885) : see declaration of 'WSAGetLastError'
c:\program files\microsoft sdk\include\winsock2.h(2302) : error C2375: 'WSAIsBlocking' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(887) : see declaration of 'WSAIsBlocking'
c:\program files\microsoft sdk\include\winsock2.h(2319) : error C2375: 'WSAUnhookBlockingHook' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(889) : see declaration of 'WSAUnhookBlockingHook'
c:\program files\microsoft sdk\include\winsock2.h(2336) : error C2375: 'WSASetBlockingHook' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(891) : see declaration of 'WSASetBlockingHook'
c:\program files\microsoft sdk\include\winsock2.h(2353) : error C2375: 'WSACancelBlockingCall' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(893) : see declaration of 'WSACancelBlockingCall'
c:\program files\microsoft sdk\include\winsock2.h(2375) : error C2375: 'WSAAsyncGetServByName' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(895) : see declaration of 'WSAAsyncGetServByName'
c:\program files\microsoft sdk\include\winsock2.h(2402) : error C2375: 'WSAAsyncGetServByPort' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(903) : see declaration of 'WSAAsyncGetServByPort'
c:\program files\microsoft sdk\include\winsock2.h(2428) : error C2375: 'WSAAsyncGetProtoByName' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(911) : see declaration of 'WSAAsyncGetProtoByName'
c:\program files\microsoft sdk\include\winsock2.h(2453) : error C2375: 'WSAAsyncGetProtoByNumber' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(918) : see declaration of 'WSAAsyncGetProtoByNumber'
c:\program files\microsoft sdk\include\winsock2.h(2478) : error C2375: 'WSAAsyncGetHostByName' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(925) : see declaration of 'WSAAsyncGetHostByName'
c:\program files\microsoft sdk\include\winsock2.h(2505) : error C2375: 'WSAAsyncGetHostByAddr' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(932) : see declaration of 'WSAAsyncGetHostByAddr'
c:\program files\microsoft sdk\include\winsock2.h(2528) : error C2375: 'WSACancelAsyncRequest' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(941) : see declaration of 'WSACancelAsyncRequest'
c:\program files\microsoft sdk\include\winsock2.h(2548) : error C2375: 'WSAAsyncSelect' : redefinition; different linkage
        c:\program files\microsoft sdk\include\winsock.h(943) : see declaration of 'WSAAsyncSelect'
c:\program files\microsoft sdk\include\ws2tcpip.h(28) : error C2011: 'ip_mreq' : 'struct' type redefinition
c:\program files\microsoft sdk\include\ws2tcpip.h(71) : warning C4005: 'IP_TOS' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(361) : see previous definition of 'IP_TOS'
c:\program files\microsoft sdk\include\ws2tcpip.h(72) : warning C4005: 'IP_TTL' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(360) : see previous definition of 'IP_TTL'
c:\program files\microsoft sdk\include\ws2tcpip.h(73) : warning C4005: 'IP_MULTICAST_IF' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(355) : see previous definition of 'IP_MULTICAST_IF'
c:\program files\microsoft sdk\include\ws2tcpip.h(74) : warning C4005: 'IP_MULTICAST_TTL' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(356) : see previous definition of 'IP_MULTICAST_TTL'
c:\program files\microsoft sdk\include\ws2tcpip.h(75) : warning C4005: 'IP_MULTICAST_LOOP' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(357) : see previous definition of 'IP_MULTICAST_LOOP'
c:\program files\microsoft sdk\include\ws2tcpip.h(76) : warning C4005: 'IP_ADD_MEMBERSHIP' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(358) : see previous definition of 'IP_ADD_MEMBERSHIP'
c:\program files\microsoft sdk\include\ws2tcpip.h(77) : warning C4005: 'IP_DROP_MEMBERSHIP' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(359) : see previous definition of 'IP_DROP_MEMBERSHIP'
c:\program files\microsoft sdk\include\ws2tcpip.h(78) : warning C4005: 'IP_DONTFRAGMENT' : macro redefinition
        c:\program files\microsoft sdk\include\winsock.h(362) : see previous definition of 'IP_DONTFRAGMENT'
c:\program files\microsoft sdk\include\wspiapi.h(128) : error C2440: '=' : cannot convert from 'unsigned long (__stdcall *)(const char *)' to 'unsigned long'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
c:\program files\microsoft sdk\include\wspiapi.h(232) : error C2440: '=' : cannot convert from 'struct hostent *(__stdcall *)(const char *)' to 'struct hostent *'
        There is no context in which this conversion is possible
c:\program files\microsoft sdk\include\wspiapi.h(263) : error C2450: switch expression of type 'int (__stdcall *)(void)' is illegal
        Integral expression required
c:\program files\microsoft sdk\include\wspiapi.h(544) : error C2440: '=' : cannot convert from 'unsigned short (__stdcall *)(unsigned short)' to 'unsigned short'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
c:\program files\microsoft sdk\include\wspiapi.h(555) : error C2440: '=' : cannot convert from 'struct servent *(__stdcall *)(const char *,const char *)' to 'struct servent *'
        There is no context in which this conversion is possible
c:\program files\microsoft sdk\include\wspiapi.h(562) : error C2440: '=' : cannot convert from 'struct servent *(__stdcall *)(const char *,const char *)' to 'struct servent *'
        There is no context in which this conversion is possible
c:\program files\microsoft sdk\include\wspiapi.h(597) : error C2440: '=' : cannot convert from 'unsigned long (__stdcall *)(unsigned long)' to 'unsigned long'
        This conversion requires a reinterpret_cast, a C-style cast or function-style cast
c:\program files\microsoft sdk\include\wspiapi.h(742) : error C2440: '=' : cannot convert from 'struct servent *(__stdcall *)(int,const char *)' to 'struct servent *'
        There is no context in which this conversion is possible
c:\program files\microsoft sdk\include\wspiapi.h(772) : error C2440: '=' : cannot convert from 'char *(__stdcall *)(struct in_addr)' to 'char *'
        There is no context in which this conversion is possible
c:\program files\microsoft sdk\include\wspiapi.h(779) : error C2440: '=' : cannot convert from 'struct hostent *(__stdcall *)(const char *,int,int)' to 'struct hostent *'
        There is no context in which this conversion is possible
c:\program files\microsoft sdk\include\wspiapi.h(795) : error C2450: switch expression of type 'int (__stdcall *)(void)' is illegal
        Integral expression required
c:\program files\microsoft sdk\include\wspiapi.h(803) : error C2440: '=' : cannot convert from 'char *(__stdcall *)(struct in_addr)' to 'char *'
        There is no context in which this conversion is possible
Error executing cl.exe.

test.exe - 70 error(s), 19 warning(s)
Comment
Watch Question
This problem has been solved!
Unlock 1 Answer and 2 Comments.
See Answer
Why Experts Exchange?

Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.

Jim Murphy
Programmer at Smart IT Solutions

When asked, what has been your best career decision?

Deciding to stick with EE.

Mohamed Asif
Technical Department Head

Being involved with EE helped me to grow personally and professionally.

Carl Webster
CTP, Sr Infrastructure Consultant
Ask ANY Question

Connect with Certified Experts to gain insight and support on specific technology challenges including:

  • Troubleshooting
  • Research
  • Professional Opinions
Did You Know?

We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE