本节演示如何从源码构建Zabbix agent 2(Windows版本)。
1. 下载带有SJLJ(set jump/long jump)异常处理 和Windows线程的MinGW-w64(例如 x86_64-8.1.0-release-win32-sjlj-rt_v6-rev0.7z)
2. 解压并移动到c:\mingw
3. 设置环境变量
编译时使用Windows命令提示符而非MinGW提供的MSYS终端
以下说明将在c:\dev\pcre中编译安装64位PCRE库,并在c:\dev\pcre32中安装32位库:
1. 下载PCRE或PCRE2(Zabbix 6.0起支持)库(https://pcre.org/)并解压
2. 打开cmd并导航至解压后的源码目录
1. 如果存在旧配置/缓存则删除:
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. 接下来, run:
mingw32-make clean mingw32-make install
1. 运行:
2. 删除 CMakeCache.txt:
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. 接下来, run:
mingw32-make install
1. 从https://curl.se/windows/下载32位和64位版本
2. 将文件分别解压至c:\dev\openssl32和c:\dev\openssl目录
3. 完成后删除解压出的*.dll.a文件(DLL调用封装库),因为MinGW会优先使用它们而非静态库。
请确保撤销非管理员用户对OpenSSL安装目录(C:\dev\openssl32
或C:\dev\openssl
)的写入权限。否则Zabbix agent 2会加载可能被非特权用户修改的SSL配置路径,导致潜在安全漏洞。
打开MinGW环境(Windows命令提示符)并导航至 Zabbix源代码树的build/mingw目录。
运行:
mingw32-make clean mingw32-make ARCH=x86 PCRE=c: OPENSSL=c:
打开MinGW环境(Windows命令提示符)并导航至 Zabbix源代码树的build/mingw目录。
运行:
在64位平台上可以构建32位和64位版本, 但32位平台只能构建32位version。 在32位平台上操作时,遵循与64位平台上 构建64位version相同的步骤。