<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body bgcolor="#ffffff" text="#000000">
Hi,<br>
<br>
I am trying to compile some libraries (Winpcap 4.0.1/ libnet and
others) under MinGW (not the one included in Cygwin, but the one at <a
 href="http://www.mingw.org/">http://www.mingw.org/</a>).<br>
<br>
Here is <a
 href="http://mathieu.carbou.free.fr/wiki/index.php?title=Setup_and_configure_MinGW">my
environment</a>:<br>
<ul>
  <li>Windows XP pro, 32bits<br>
  </li>
  <li>gcc-core-3.4.5-20060117-1.tar.gz</li>
  <li>gcc-g++-3.4.5-20060117-1.tar.gz</li>
  <li>gcc-objc-3.4.5-20060117-1.tar.gz</li>
  <li>mingw-runtime-3.13.tar.gz</li>
  <li>mingw32-make-3.81-2.tar.gz</li>
  <li>w32api-3.10.tar.gz<br>
  </li>
</ul>
I get the following error:<br>
<pre>mcarbou@BOX /d/data/download/winpcap/wpcap/PRJ
$ make
gcc -I ../libpcap -I ../libpcap/bpf -I ../libpcap/lbl -I ../libpcap/Win32/Include -I../libpcap/Win32/Include/ipv6kit -I ../../common -I ../Win32-Extensions -I ../../../Airpcap_DevPack/include -DLIBPCAP_EXPORTS -DYY_NEVER_INTERACTIVE -Dyylval=pcap_lval -DHAVE_STRERROR -DNEED_ADDRINFO_H -DINET6 -DWIN3
2 -DSIZEOF_CHAR=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG_LONG=8 -DWPCAP -D'_U_=' -DHAVE_SNPRINTF -DHAVE_VSNPRINTF -DSIZEOF_LONG_LONG=8 -DHAVE_REMOTE -DHAVE_AIRPCAP_API -mno-cygwin -shared -O -o ../libpcap/Win32/Src/gai_strerror.o -c ../libpcap/Win32/Src/gai_strerror.c
../libpcap/Win32/Src/gai_strerror.c:72: <b>error: conflicting types for 'gai_strerrorA'</b>
c:/programs/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/ws2tcpip.h:309: <b>error: previous definition of 'gai_strerrorA' was here</b>
make: *** [../libpcap/Win32/Src/gai_strerror.o] Error 1

</pre>
Searching in the mailing list archives, i have found the possible cause
of this issue:<br>
<br>
<a
 href="http://www.winpcap.org/pipermail/winpcap-users/2005-December/000575.html">http://www.winpcap.org/pipermail/winpcap-users/2005-December/000575.html</a><br>
<br>
A patch seems to be applied to add the gai_strerrorA function that was
missing. But in my environment, i have this function already defined in
ws2tcpip.h. See the attachment. So simply adding a #ifndef gai_strerror
seems to solve the issue.<br>
<br>
Here is the patch:<br>
<pre>--- /d/data/download/gai_strerror.c     Sun Jan 22 15:14:18 2006
+++ ../libpcap/Win32/Src/gai_strerror.c Tue Sep 18 21:29:11 2007
@@ -67,6 +67,7 @@
 #define EAI_MAX (sizeof(ai_errlist)/sizeof(ai_errlist[0]))
 #endif

+#ifndef gai_strerror
 char *
 WSAAPI gai_strerrorA(int ecode)
 {
@@ -74,4 +75,4 @@
                return ai_errlist[ecode];
        return "Unknown error";
 }
-
+#endif
</pre>
<br>
<div class="moz-signature">-- <br>
<table
 style="border: 2px outset rgb(0, 0, 0); padding: 1px 3px; background-color: rgb(240, 240, 255); color: rgb(0, 0, 0); font-family: monospace; font-size: 11px;"
 cellspacing="0">
  <tbody>
    <tr>
      <td colspan="2"> <span style="font-size: larger;"><b>Mathieu
Carbou</b></span><br>
IT Consultant,<br>
Sun Certified Java Programmer </td>
    </tr>
    <tr>
      <td><b>Mail:</b></td>
      <td><a href="mailto:mathieu.carbou@gmail.com">mathieu.carbou@gmail.com</a></td>
    </tr>
    <tr>
      <td><b>Website:</b></td>
      <td><a href="http://mathieu.carbou.free.fr/">http://mathieu.carbou.free.fr/</a></td>
    </tr>
  </tbody>
</table>
</div>
<br>
</body>
</html>