3.6. Build Wireshark (original) (raw)

The sources contain several documentation files. It’s a good idea to read these files first. After obtaining the sources, tools and libraries, the first place to look at is doc/README.developer. Inside you will find the latest information for Wireshark development for all supported platforms.

[Tip] Build Wireshark before changing anything
It is a very good idea to first test your complete build environment (including running and debugging Wireshark) before making any changes to the source code (unless otherwise noted).

Building Wireshark for the first time depends on your platform.

3.6.2. Windows Native

Follow the build procedure in Section 2.2, “Windows” to build Wireshark.

After the build process has successfully finished, you should find aWireshark.exe and some other files in the run\RelWithDebInfo directory.

3.6.3. Build Type

CMake can compile Wireshark for several different build types:

Table 3.1. Build Types

Type Compiler Flags Description
RelWithDebInfo -O2 -g -DNDEBUG Build with optimizations and generate debug symbols. Disables assertions and disables debug level logs
Debug -g -DWS_DEBUG For development, no optimization. Enables assertions and debug level logs
Release -O3 -DNDEBUG Optimized for speed, no debug symbols or debug level logs or assertions
MinSizeRel -Os -DNDEBUG Optimized for size, no debug symbols or debug level logs or assertions

The default is RelWithDebInfo, which provides a good compromise of some optimization (-O2) along with including debug symbols (-g) for release builds. For normal development coding you probably want to be using Debug build type or set -DENABLE_DEBUG=On, to enable fulllogging capabilities and debug code.

CMake will automatically add the -DNDEBUG option to certain build types. This macro is used to disable assertions but it can be overruled using ENABLE_ASSERT, which can be used to unconditionally enable assertions if defined.

To change the build type, set the CMake variable CMAKE_BUILD_TYPE, e.g.:

$ cmake .. -DCMAKE_BUILD_TYPE=Debug

or on Windows,

msbuild /m /p:Configuration=Debug Wireshark.sln