[comment]: # ({55fd3f33-22c598e9})
# 2 Construint l'agent Zabbix 2 sota Windows

[comment]: # ({/55fd3f33-22c598e9})

[comment]: # ({84651997-84651997})
#### Vista general

Aquesta secció ensenya com construir l'agent Zabbix 2 (Windows) a partir de les fonts.

[comment]: # ({/84651997-84651997})

[comment]: # ({2a4da91c-2a4da91c})
#### Instal·lació del compilador MinGW

1\. Descarregar MinGW-w64 amb el Gestor d'Excepcions SJLJ (set jump/long jump) i els threads de windows (per exemple *x86\_64-8.1.0-release-win32-sjlj-rt\_v6-rev0.7z*)\
2\. Extreure-ho a *c:\\mingw*\
3\. Configurar la variable d'entorn

    @echo off
    set PATH=%PATH%;c:\mingw\bin
    cmd

Quan compileu, empreu la línia de comandes de Windows enlloc del terminal MSYS proporcionat per MinGW.

[comment]: # ({/2a4da91c-2a4da91c})

[comment]: # ({71ef8bdd-dec81522})
#### Compilació de les biblioteques de desenvolupament PCRE

Les instruccions següents compilaran i instal·laran les biblioteques PCRE de 64 bits a *c:\\dev\\pcre* i les biblioteques de 32 bits a *c:\\dev\\pcre32*:

1\. Baixeu la biblioteca PCRE o PCRE2 (suportada des de Zabbix 6.0) des de pcre.org (<https://pcre.org/>) i extraieu les fonts\
2\. Obriu *cmd* i navegueu a les fonts extretes

[comment]: # ({/71ef8bdd-dec81522})

[comment]: # ({5def516d-5def516d})
##### Construir PCRE 64 bits

1\. Esborrar la configuració antiga i la cau, si existeix:

    del CMakeCache.txt
    rmdir /q /s CMakeFiles

2\. Executarcmake (CMake es pot instal·lar des de <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\. Tot seguit, executar:

    mingw32-make clean
    mingw32-make install

[comment]: # ({/5def516d-5def516d})

[comment]: # ({04b79926-04b79926})
##### Construir PCRE 32 bits

1\. Executar:

    mingw32-make clean

2\. Esborrar *CMakeCache.txt*:

    del CMakeCache.txt
    rmdir /q /s CMakeFiles

3\. Executar 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\. Tot seguit, executar:

    mingw32-make install

[comment]: # ({/04b79926-04b79926})

[comment]: # ({c89b2e18-80e7f73a})
#### Instal·lació de les biblioteques de desenvolupament OpenSSL

1. Baixeu les versions de 32 i 64 bits des de <https://curl.se/windows/>.
2. Extraieu els fitxers als directoris *c:\\dev\\openssl32* i *c:\\dev\\openssl* en conseqüència.
3. Després d'això, esborreu les  biblioteques d'embolcall de crides dll (*\*.dll.a*), ja que MinGW els prioritza abans que les biblioteques estàtiques.

::: noteimportant
Assegureu-vos de revocar l'accés d'escriptura dels usuaris que no són administradors al directori d'instal·lació d'OpenSSL (`C:\dev\openssl32` o `C:\dev\openssl`).En cas contrari, l'agent 2 de Zabbix carregarà la configuració SSL des d'una ruta que poden modificar usuaris sense privilegis, cosa que pot donar lloc a una vulnerabilitat de seguretat.
:::

[comment]: # ({/c89b2e18-80e7f73a})

[comment]: # ({f4af7b47-f4af7b47})
#### Compilació de l'agent Zabbix 2

[comment]: # ({/f4af7b47-f4af7b47})

[comment]: # ({5f096f18-5f096f18})
##### 32 bit

Obrir l'entorn de MinGW (línia de comandes de Windows) i accediu al directori *build/mingw* a l'arbre de Zabbix.

Executeu:

    mingw32-make clean
    mingw32-make ARCH=x86 PCRE=c:\dev\pcre32 OPENSSL=c:\dev\openssl32

[comment]: # ({/5f096f18-5f096f18})

[comment]: # ({f7876f1d-f7876f1d})
##### 64 bit

Obriu l'entorn MinGW (indicador d'ordres de Windows) i navegueu al directori *build/mingw* a l'arbre de fonts de Zabbix.

Executeu:

     mingw32-neteja
     mingw32 -make PCRE=c:\dev\pcre OPENSSL=c:\dev\openssl

:::noteclassic
Tant les versions de 32 bits com les de 64 bits es poden crear en una plataforma de 64 bits, però només es pot crear una versió de 32 bits en una plataforma de 32 bits. Quan treballeu a la plataforma de 32 bits, seguiu les mateixes passes que per a la versió de 64 bits a la plataforma de 64 bits.
:::

[comment]: # ({/f7876f1d-f7876f1d})
