Skip to main content
Version: v23.09

Build From Source on Windows - Visual Studio

Please visit the supported platforms page to see the Visual Studio versions currently supported in PcapPlusPlus.

Prerequisites

In order to build PcapPlusPlus on Windows with Visual Studio you need the following components:

  1. A supported version of Microsoft Visual Studio

  2. CMake which can be installed from: https://cmake.org/install/ or with pacman if using MSYS2: pacman -S mingw-w64-x86_64-cmake

  3. Download and install WinPcap OR Npcap on your system

    Note for Npcap:

    If you install Npcap please check the Install Npcap in WinPcap API-compatilbility mode option during installation:

    Npcap-WinPcap compatilibitly

  4. WinPcap developer's pack OR Npcap SDK - containing the wpcap library PcapPlusPlus is linking with plus relevant h files.

    1. WinPcap developer's pack can be downloaded from here: https://www.winpcap.org/devel.htm
    2. Npcap SDK can be downloaded from here: https://nmap.org/npcap/#download
  5. In some cases you also need to download and install:

    1. Microsoft Visual C++ Redistributable for your version of Visual Studio
    2. Microsoft Visual C++ 2010 Redistributable
  6. OPTIONAL - download Zstd libraries if you wish to enable PCAPNG streaming compression support

Build

Assuming you want to build PcapPlusPlus into a build directory:

cmake -DPCAP_ROOT=<NpcapSDK_or_WinPcapDevPack_Directory> -S . -B build

You can use the following CMake options to determine specific parameters:

  • To build for a specific (non-default) version of Visual Studio you can use the -G option, for example -G "Visual Studio 16 2019" will builf for VS 2019
  • To build for a specific platform you can use the -A option, for example: -A x64 or -A Win32

This will create a VS Solution file in the build directory: build\PcapPlusPlus.sln and multiple VS project files .vcxproj.

This solution file contains all the projects required to build the PcapPlusPlus libraries, examples, and tests. In this solution you'll find the ALL_BUILD project that builds everything.

There are multiple options to build PcapPlusPlus:

  • Use CMake and choose the configuration:
    cmake --build build --config Release
  • Open Visual Studio, choose platform and configuration and build the ALL_BUILD project
  • Use MSBuild and choose the platform and configuration, for example:
    msbuild PcapPlusPlus.sln -target:ALL_BUILD /p:Configuration=Release /p:Platform=x64

After a successful build the following artifacts will be created:

  • PcapPlusPlus libs:
    • build\Common++\<Debug/Release>\libCommon++.a
    • build\Packet++\<Debug/Release>\libPacket++.a
    • build\Pcap++\<Debug/Release>\libPcap++.a
  • PcapPlusPlus examples binaries under build\examples_bin\<Debug/Release>
  • PcapPlusPlus tests:
    • <PcapPlusPlus_Dir>\Tests\Packet++Test\Bin\Packet++Test.exe
    • <PcapPlusPlus_Dir>\Tests\Pcap++Test\Bin\Pcap++Test.exe

The following configuration options are available (on top of CMake's built-in options):

OptionDescription
-DPCAP_ROOT=<DIR>Npcap SDK or WinPcap developer pack directory (mandatory option)
-DPCAPPP_BUILD_EXAMPLES=<ON/OFF>Build PcapPlusPlus examples (default value is ON if building the project itself, otherwise OFF)
-DPCAPPP_BUILD_TESTS=<ON/OFF>Build PcapPlusPlus tests (default value is ON if building the project itself, otherwise OFF)
-DPCAPPP_BUILD_TUTORIALS=<ON/OFF>Build PcapPlusPlus tutorials. This option is only available if DPCAPPP_BUILD_EXAMPLES=ON. The tutorials binaries will be under build\tutorials_bin (default value is OFF)
-DPCAPPP_INSTALL=<ON/OFF>Install PcapPlusPlus (default value is ON if building the project itself, otherwise OFF)
-DBUILD_SHARED_LIBS=<ON/OFF>Build shared libs (default value is OFF)
-DPCAPPP_ENABLE_PCAP_IMMEDIATE_MODE=<ON/OFF>Enable pcap immediate mode, available only in Npcap (default value is OFF)
-DPCAPPP_ENABLE_PCAP_SET_DIRECTION=<ON/OFF>Enable set direction for capturing incoming or outgoing packets (default value is OFF)

Installation

Windows doesn't have a default install directory, but you may want to see all libs, header files and examples under one directory (which is not the build directory). Here is how to acheive that:

set DESTDIR=<DIR>
cmake --install build --prefix "/"

Running tests

PcapPlusPlus contains a set of test-cases you can run to make sure that everything works correctly on your system. This guide contains detailed instructions on how to run them.