The main line to compile Ethereal under Windows is still using Microsoft Visual Studio Version 6.
The reason for this is that the myriad of [http://anonsvn.ethereal.com/ethereal-win32-libs/tags/ Win32 support lib] port projects all seem to believe there are legal issues involved in using newer versions of Visual Studio. This FUD essentially stems from two misconceptions:
Unfortunately, it is believed by many that the Microsoft Visual Studio 2k3 EULA explicitly forbids linking with GPL'ed programs. This belief is probably due to an improper interpretation of the [http://msdn.microsoft.com/visualc/vctoolkit2003/eula.aspx Visual Studio 2k3 Toolkit EULA], which places redistribution restrictions only on SOURCE CODE SAMPLES which accompany the toolkit.
Other maintainers believe that the GPL itself forbids using Visual Studio 2k3, since one of the required support libraries (MSVCR71.DLL) does not ship with the Windows operating system. This is also a wrongful interpretation, and the [http://www.gnu.org/licenses/gpl-faq.html#WindowsRuntimeAndGPL GPL FAQ] explicitly addresses this issue.
So due to this, the build process under newer versions of the Microsoft build environment does not work "out of the box". However, with a little work it is not only possible to build Ethereal under Visual Studio 2k3, but also under the combination of the freely available [http://www.microsoft.com/downloads/details.aspx?FamilyID=9B3A2CA6-3647-4070-9F41-A333C6B9181D&displaylang=en .NET Framework SDK] and the [http://www.microsoft.com/msdownload/platformsdk/sdkupdate/ Platform SDK].
to qoute a mail from Laurent Rabret (see http://www.ethereal.com/lists/ethereal-dev/200501/msg00636.html):
To compile with the .NET SDK, you'll have to install the platform SDK (available for free).
You may encounter linking problems caused by "bad" parameters in config.nmake. I never sent a patch to fix this because I'm not sure whether or not it impacts VS6 compilation. I replaced:
LOCAL_CFLAGS=/Zi /W3 by LOCAL_CFLAGS= /Zi /DWIN32 /W3
LOCAL_LDFLAGS=/DEBUG by LOCAL_LDFLAGS=/DEBUG /DEFAULTLIB:msvcrt /NODEFAULTLIB:libc
While compiling plugins, you might also encounter problems. For these plugins, in the Makefile.nmake file change
LDFLAGS = /NOLOGO /INCREMENTAL:no /MACHINE:I386 $(LOCAL_LDFLAGS)
LDFLAGS = /NOLOGO /INCREMENTAL:no /MACHINE:I386
...I know, that's not very clean
At last, don't forget to include a line such this:
File "c:\program files\Microsoft Visual Studio .NET 2003\Common7\IDE\msvcr71.dll"
... in your ethereal.nsi script (if you want to create an installer)
This wiki page is incomplete. More information can be found in [http://thread.gmane.org/gmane.network.ethereal.devel/12491 this thread]