Building Zabbix agent 2 on Windows

Overview

This section demonstrates how to build Zabbix agent 2 (Windows) from sources.

Installing MinGW Compiler

1. Download MinGW-w64 with SJLJ (set jump/long jump) Exception Handling and Windows threads (for example x86_64-8.1.0-release-win32-sjlj-rt_v6-rev0.7z)
2. Extract and move to c:\mingw
3. Setup environmental variable

  1. @echo off
  2. set PATH=%PATH%;c:\mingw\bin
  3. cmd

When compiling use Windows prompt instead of MSYS terminal provided by MinGW

Compiling PCRE development libraries

The following instructions will compile and install 64-bit PCRE libraries in c:\dev\pcre and 32-bit libraries in c:\dev\pcre32:

1. Download the PCRE or PCRE2 (supported since Zabbix 6.0) library (https://pcre.org/) and extract
2. Open cmd and navigate to the extracted sources

Build 64bit PCRE

1. Delete old configuration/cache if exists:

  1. del CMakeCache.txt
  2. rmdir /q /s CMakeFiles

2. Run cmake (CMake can be installed from https://cmake.org/download/):

  1. cmake -G "MinGW Makefiles" -DCMAKE_C_COMPILER=gcc -DCMAKE_C_FLAGS="-O2 -g" -DCMAKE_CXX_FLAGS="-O2 -g" -DCMAKE_INSTALL_PREFIX=c:\dev\pcre

3. Next, run:

  1. mingw32-make clean
  2. mingw32-make install
Build 32bit PCRE

1. Run:

  1. mingw32-make clean

2. Delete CMakeCache.txt:

  1. del CMakeCache.txt
  2. rmdir /q /s CMakeFiles

3. Run cmake:

  1. cmake -G "MinGW Makefiles" -DCMAKE_C_COMPILER=gcc -DCMAKE_C_FLAGS="-m32 -O2 -g" -DCMAKE_CXX_FLAGS="-m32 -O2 -g" -DCMAKE_EXE_LINKER_FLAGS="-Wl,-mi386pe" -DCMAKE_INSTALL_PREFIX=c:\dev\pcre32

4. Next, run:

  1. mingw32-make install

Building OpenSSL libraries using MinGW

  1. If you don’t have it installed already, install Cygwin and Perl for Cygwin and configure them according to instructions in the official Perl documentation.

  2. Run:

  1. perl Configure mingw64 no-shared no-ui-console no-tests no-capieng --libdir=lib --api=1.1.0 --prefix=c:\dev\openssl32 --openssldir=c:\dev\openssl32
  2. make build_sw
  3. make install_dev

Compiling Zabbix agent 2

32 bit

Open MinGW environment (Windows command prompt) and navigate to build/mingw directory in the Zabbix source tree.

Run:

  1. mingw32-make clean
  2. mingw32-make ARCH=x86 PCRE=c:\dev\pcre32 OPENSSL=c:\dev\openssl32
64 bit

Open MinGW environment (Windows command prompt) and navigate to build/mingw directory in the Zabbix source tree.

Run:

  1. mingw32-make clean
  2. mingw32-make PCRE=c:\dev\pcre OPENSSL=c:\dev\openssl

Both 32- and 64- bit versions can be built on a 64-bit platform, but only a 32-bit version can be built on a 32-bit platform. When working on the 32-bit platform, follow the same steps as for 64-bit version on 64-bit platform.