Libraries
Introduction Several libraries are needed to build / run Ethereal. Most of the libraries are splitted into three packages: Runtime package: binaries (e.g. win32 DLL's) and alike Developer package: documentation, header files and alike Source package: library sources, usually not required to build ethereal Tip! Win32: All required libraries for the MSVC generation are available at: , but see for an easier way to install the libraries.
Binary library formats Binary libraries are available in different formats, depending on the C compiler (see ) used to build it and of course the platform they were build for.
Unix If you have installed unix binary libraries on your system, they will match the C compiler. If not already installed, the libraries should be available as a package from the platform installer, or you can download and compile the source and install that binaries then.
Win32: MSVC V6 Recommended for current Win32 Ethereal releases. Most of the Win32 binary libraries you will find on the web are in this format. You will recognize MSVC libraries by the .lib/.dll file extension.
Win32: MSVC 2003 Currently not widely available, but the first libraries in that format can be seen on the web. These libraries have the same .lib/.dll file extension, but unfortunately they are not completely compatible as they are linked with different dependant libraries, see for some further explanations.
Win32: cygwin gcc Cygwin provides most of the required libraries (with file extension .a/.lib) for Ethereal suitable for cygwin's gcc compiler.
Win32: Automated library download Tip! It's a really good idea to use the Win32 automated library download to install the required libraries as it makes this download very easy. Warning! The library zip files on the server and in the setup target will match only for the latest sources, as old zip files will be moved into the old folder on the server. So you cannot use the setup target for "old" (this may even include the released) sources! You can download/install all required libraries by using the setup target of the Makefile.nmake from the source package. Before you start the download, you must have installed both the required tools (see ) and also the Ethereal sources (see ). By default the libraries will be downloaded and installed into C:\ethereal-win32-libs. You can change this to any other location by editing the file config.nmake and changing the line containing the ETHEREAL_LIBS setting to your favourite place (use an absolute path here). Then enter at the command line: > nmake -f Makefile.nmake setup This will first check for all the various tools needed to build Ethereal, as described already in . Then it will download the zipped libraries into the directory specified by ETHEREAL_LIBS and install (unzip) all required library files there. If you have problems downloading the library files, see the wget proxy comment in .
Update of a previous download As new versions of the libraries become available, maybe with bugfixes or some new functionality, your libraries get outdated. You could simply remove everything in the ETHEREAL_LIBS dir and call the setup target again, but that would require to download every file again (currently about 33MB), which isn't necessary. The following will bring your libraries up to date: Update your Ethereal sources to the latest SVN files (see ), so the zip filenames in the setup target of Makefile.nmake is in sync with the library zip files on the server. Remove all files previously unzipped from the downloaded files in your ETHEREAL_LIBS library path (all the subdirs, e.g. c:\ethereal_libs\gtk+), except for the zip files located at the toplevel, which are the files downloaded the last time(s). You could do this, be entering at the command line: > nmake -f Makefile.nmake clean_setup Start the setup target described above. As wget will download only the missing files, existing zip files in the ETHEREAL_LIBS dir won't be downloaded again. Outdated zip files shouldn't do any harm.
GTK+ / GLib / GDK / Pango / ATK / GNU gettext / GNU libiconv The Glib library is used as a basic platform abstraction library, it's not related to graphical user interface (GUI) things. For a detailed description about GLib, see . The GTK and it's dependant libraries are used to build Ethereal's GUI. For a detailed description of the GTK libraries, see . All other libraries are dependant on the two libraries mentioned above, you will typically not come in touch with these while doing Ethereal development. As the requirements for the GLib/GTK libraries increased in the past, it depends on the GLib/GTK versions you have, which additional libraries are required. The 1.x versions only needed GLib/GDK/GTK+, while the 2.x versions require all mentioned libs.
Unix The GLib/GTK+ libraries are available for many unix-like platforms and cygwin. If these libraries aren't already installed and also not available as a package for your platform, you can get them at: .
Win32 MSVC You can get the latest version at: .
Net SNMP (previously known as "ucd-snmp") "Various tools relating to the Simple Network Management Protocol"
Unix If this library isn't already installed and also not available as a package for your platform, you can get it at: .
Win32 MSVC Ethereal uses the source Net-SNMP distribution at . Then libsnmp is compiled with the "libsnmp - Win32 Release" project using MSVC++ 6.0. A file called "README.ethereal" has been placed in the net-snmp zip archive at describing the changes in more detail.
GNU ADNS (optional) "Advanced, easy to use, asynchronous-capable DNS client library and utilities."
Unix If this library isn't already installed and also not available as a package for your platform, you can get it at: .
Win32 MSVC You can get the latest version at:
PCRE(optional) "Perl compatible regular expressions"
Unix If this library isn't already installed and also not available as a package for your platform, you can get it at: .
Win32 MSVC You can get the latest version at:
zlib (optional) "zlib is designed to be a free, general-purpose, legally unencumbered -- that is, not covered by any patents -- lossless data-compression library for use on virtually any computer hardware and operating system."
Unix If this library isn't already installed and also not available as a package for your platform, you can get it at: .
Win32 MSVC You can get the latest version at: (A version for the MSVC2003 compiler can be found at: )
libpcap/WinPcap (optional) "packet capture library"
Unix: libpcap If this library isn't already installed and also not available as a package for your platform, you can get it at: .
Win32 MSVC: WinPcap You can get the "Windows packet capture library" at:
Win32: GTK WIMP (optional) for GTK 2.x only "GTK-Wimp ("Windows impersonator") is a GTK theme that blends well into the Windows desktop environment." Wimp is only available for the GTK2.x versions at: .