Build From Source on Windows - MinGW-w64
Prerequisites
In order to compile PcapPlusPlus on Windows using MinGW-w64 you need the following components:
CMakewhich can be installed from: https://cmake.org/install/ or withpacmanif using MSYS2:pacman -S mingw-w64-x86_64-cmake- Download and run MinGW-w64 installer from here: https://sourceforge.net/projects/mingw-w64/
- Make sure that MinGW-w64
bindirectory is in yourPATHenvironment variable, for example:PATH=%PATH%;C:\mingw-w64\i686-8.1.0-posix-dwarf-rt_v6-rev0\mingw32\bin - OPTIONAL If you want to use WinPcap/Npcap features such as packet capture and have
-DPCAPPP_USE_PCAP=ON:-
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 modeoption during installation: -
Download and install WinPcap developer's pack OR Npcap SDK - containing the wpcap library PcapPlusPlus is linking with plus relevant
hfiles.
-
Build
Assuming you want to build PcapPlusPlus into a build directory:
With WinPcap/Npcap support:
cmake -G "MinGW Makefiles" -DPCAP_ROOT=<NpcapSDK_or_WinPcapDevPack_Directory> -S . -B build
Without WinPcap/Npcap support:
cmake -G "MinGW Makefiles" -DPCAPPP_USE_PCAP=OFF -S . -B build
And then initiate the build in one of two ways:
- Using CMake:
cmake --build build - Using
make:cd build
make
This process will build the following artifacts:
- PcapPlusPlus libs:
build\Common++\libCommon++.abuild\Packet++\libPacket++.abuild\Pcap++\libPcap++.a
- PcapPlusPlus examples binaries under
build\examples_bin - 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 |
|---|---|
-DPCAPPP_USE_PCAP=<ON/OFF> | Build PcapPlusPlus with WinPcap/Npcap support (default value is ON) |
-DPCAP_ROOT=<DIR> | Npcap SDK or WinPcap developer pack directory (mandatory option if -DPCAPPP_USE_PCAP=ON) |
-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) |
-DPCAPPP_USE_WINDIVERT=<ON/OFF> | Setup PcapPlusPlus with WinDivert (default value is OFF). When this option is used CMake will look for an installed version of WinDivert on the build machine (by default under C:\Program Files\WinDivert or C:\WinDivert). If WinDivert is installed in a different directory please use -DWinDivert_ROOT |
-DWinDivert_ROOT=<DIR> | When setting up PcapPlusPlus with WinDivert and WinDivert is not installed in the default directory (under C:\Program Files\WinDivert or C:\WinDivert) use this option to indicate WinDivert installation directory |
-DBUILD_SHARED_LIBS=<ON/OFF> | Build shared libs (default value is OFF) |
-DPCAPPP_BUILD_PCAPPP=<ON/OFF> | Build the Pcap++ library (default value is ON). Turning it off will only build Common++ and Packet++ and avoid third-party dependencies such as libpcap or WinPcap/Npcap |
-DPCAPPP_LOG_LEVEL=<0/1/2/3> | Set compile time log level: Off (0), Error (1), Info (2), Debug (1) (Default value is Debug) |
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.