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:
-
A supported version of Microsoft Visual Studio
-
CMake
which can be installed from: https://cmake.org/install/ or withpacman
if using MSYS2:pacman -S mingw-w64-x86_64-cmake
-
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: -
WinPcap developer's pack OR Npcap SDK - containing the wpcap library PcapPlusPlus is linking with plus relevant
h
files.- WinPcap developer's pack can be downloaded from here: https://www.winpcap.org/devel.htm
- Npcap SDK can be downloaded from here: https://nmap.org/npcap/#download
-
In some cases you also need to download and install:
- Microsoft Visual C++ Redistributable for your version of Visual Studio
- Microsoft Visual C++ 2010 Redistributable
-
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):
Option | Description |
---|---|
-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.