Build From Source on MacOS
Prerequisites
In order to compile PcapPlusPlus on MacOS please make sure you have the following components installed:
-
Xcode which contains all prerequisites required for PcapPlusPlus including gcc/g++ compiler and libpcap with all relevant header files
-
Make sure you have Xcode Command Line Tools. You can install it by running the following command in Terminal:
xcode-select --install
-
PcapPlusPlus is available for both Intel and Apple silicon (M1) processors. To build for Apple silicon please use the
--arm64
flag (please see below) -
OPTIONAL - install Zstd if you wish to enable PCAPNG streaming compression support:
brew install zstd
Configuration
Run the configuration script from PcapPlusPlus main directory:
./configure-mac_os_x.sh
This script has the following command-line switches (you can also view then by running ./configure-mac_os_x.sh --help
or ./configure-mac_os_x.sh -h
):
Option | Description |
---|---|
no switches | use the default configuration |
--use-immediate-mode | use libpcap immediate mode which enables getting packets as fast as possible (supported on libpcap>=1.5) |
--set-direction-enabled | set direction for capturing incoming or outgoing packets (supported on libpcap>=0.9.1) |
--install-dir | set a custom installation directory. Default is /usr/local |
--libpcap-include-dir | libpcap header files directory. This parameter is optional and if omitted PcapPlusPlus will look for the header files in the default include paths |
--libpcap-lib-dir | libpcap pre compiled lib directory. This parameter is optional and if omitted PcapPlusPlus will look for the lib file in the default lib paths |
--use-zstd | use Zstd for PCAPNG streaming compression. This parameter is optional |
--arm64 | build for Apple Silicon M1 (arm64 architecture). This flag can be used for cross-compilation which means you can don't have to run the build on an Apple silicon M1 machine |
-h , --help | displays a help message and exits. No further actions are performed |
Here are a few examples:
Default configuration:
./configure-mac_os_x.sh
Configure PcapPlusPlus with libpcap's immediate mode:
./configure-mac_os_x.sh --use-immediate-mode
Configure PcapPlusPlus with libpcap's set direction:
./configure-mac_os_x.sh --set-direction-enabled
Provide non-standard paths for libpcap header and library files:
./configure-mac_os_x.sh --libpcap-include-dir /home/myuser/my-libpcap/include --libpcap-lib-dir /home/myuser/my-libpcap/lib
Provide a custom installation directory:
./configure-mac_os_x.sh --install-dir /home/myuser/my-install-dir
Use Zstd for pcapng compression:
./configure-linux.sh --use-zstd
Build the code
After running the config script, you're can safely build the code:
- Run
make
ormake all
from PcapPlusPlus main directory - This should compile all libraries, unit-tests and examples
- To build the libraries only (without the unit-tests and examples) run
make libs
instead ofmake all
- After compilation you can find the libraries, examples, header files and helpful makefiles under the
Dist
directory
Installation
After build is complete you can run the installation script which will copy the library and header files to the installation directory:
sudo make install
The default installation directory is /usr/local
which means the header files will be copied to /usr/local/include/pcapplusplus
and the library files will be copied to /usr/local/lib
.
You can change the installation directory by using the --install-dir
switch in the configuration script.
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.