2 WindowsでのZabbixエージェント2のビルド
概要
このセクションでは、Zabbixエージェント2 (Windows)をソースコードからビルドする方法を説明します。
MinGWコンパイラのインストール
1. SJLJ (set jump/long jump)例外処理と Windowsスレッドを備えたMinGW-w64をダウンロードします (例: x86_64-8.1.0-release-win32-sjlj-rt_v6-rev0.7z)\
- 解凍して、c:\mingwへ移動します。\
-
環境変数の設定をします。
@echo off set PATH=%PATH%;c:\mingw\bin cmd
コンパイル時に、MinGWが提供するMSYSターミナルの代わりにWindowsプロンプトを使用します。
PCRE開発者用ライブラリのコンパイル
次の手順で、64ビットPCREライブラリをc:\dev\pcreに、32ビットライブラリをc:\dev\pcre32にコンパイルしてインストールします。
1. PCREまたはPCRE2(Zabbix 6.0以降サポート) ライブラリ(https://pcre.org/)をダウンロードして解凍します。
2. cmd を開き、解凍されたソースに移動します。
64bit版PCREのビルド
1. 古い設定/キャッシュが存在する場合は削除します。
del CMakeCache.txt
rmdir /q /s CMakeFiles
2. cmakeを実行します (CMakeはhttps://cmake.org/download/からインストールできます)。
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. 次のコマンドを実行します。
mingw32-make clean
mingw32-make install
32bit版PCREのビルド
1. 次のコマンドを実行します。
mingw32-make clean
2. CMakeCache.txtを削除します。
del CMakeCache.txt
rmdir /q /s CMakeFiles
3. cmakeを実行します。
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. 次のコマンドを実行します。
mingw32-make install
MinGWを使用したOpenSSLライブラリのビルド
-
まだインストールしていない場合は、CygwinとPerl for Cygwinをインストールし、公式Perlドキュメントの指示に従って設定します。
-
次のコマンドを実行します。
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
make build_sw
make install_dev
Zabbixエージェント2のコンパイル
32bit
MinGW環境(Windowsコマンドプロンプト)を起動し、Zabbixソースツリーのbuild/mingwディレクトリに移動します。
次のコマンドを実行します。
mingw32-make clean
mingw32-make ARCH=x86 PCRE=c:\dev\pcre32 OPENSSL=c:\dev\openssl32
64 bit
MinGW環境(Windowsコマンドプロンプト)を起動し、Zabbixソースツリーのbuild/mingwディレクトリに移動します。
次のコマンドを実行します。
mingw32-make clean
mingw32-make PCRE=c:\dev\pcre OPENSSL=c:\dev\openssl
32ビット版、64ビット版ともに64ビットプラットフォームでビルドすることができますが、32ビットプラットフォーム上でビルドできるのは32ビット版のみです。 32ビットプラットフォームで作業する場合は、64ビットプラットフォームの64ビット版と同じ手順を踏んでください。