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.
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