¿Solución de Windows para openssl / ssl.h no tal file?

Estoy tratando de hacer esto en Windows usando Git CMD

C: \ Users \ Ove \ paho> git clone https://github.com/eclipse/paho.mqtt.c.git
C: \ Users \ Ove \ paho> cd org.eclipse.paho.mqtt.c.git
C: \ Users \ Ove \ paho> msbuild "Windows Build \ Paho C MQTT APIs.sln" / p: Configuration = Versión

Estoy atrapado en msbuild donde repite una serie de errores:

'openssl / ssl.h': ningún file o directory

He instalado openssl y hay una variable de entorno configurada en:

C: \ OpenSSL-Win32 \ bin \ openssl.cfg

He intentado agregar otras routes de sistemas como:

C: \ Users \ Ove \ openssl \ include \ openssl

que es donde reside ssl.h
También he intentado pegar localmente la carpeta openssl en la carpeta paho\src
pero sigo teniendo estos errores

Con este compromiso puedes ver lo que pasó

https://github.com/eclipse/paho.mqtt.c/commit/543e761474e4836162a0f4428323173abf2de5ad#diff-0d89939d72d5bb4940c5f129d135d9f4

Windows y MSVC no tienen ningún tipo de sistema para ubicar encabezados de biblioteca. Naturalmente, esta base de código tiene su propio sistema para ubicar los encabezados de openssl que usa una variable de entorno.

openssl.cfg se parece a la configuration operativa de openssl, sin relación alguna con la construcción de cualquier cosa.

Dice que intentó "agregar" (¿qué significa eso?) C:\Users\Ove\openssl\include\openssl (¿a qué?) Que dice que es "donde reside ssl.h". ¿Y qué? Su error de compilation no le dice que falta ssl.h. Le está diciendo que le falta openssl/ssl.h ¿Tal vez si "agregó" C:\Users\Ove\openssl\include que contiene openssl/ssl.h ? Pero no estoy seguro de cómo habría llegado allí a less que lo haya copydo, haciendo las cosas más confusas para usted.

Te diré lo que haría:

 set OpenSSLDir=C:\OpenSSL-Win32\include 

Poner la carpeta openssl en paho\src puede haber funcionado, si por "carpeta openssl" quieres decir C:\OpenSSL-Win32\include\openssl y no C:\OpenSSL-Win32 – si el proyecto hubiera hecho el equivalente de -I. , lo que significa que los bashs de #include <openssl/ssl.h> de paho\src\SSLSocket.c podrían encontrarlo en paho\src\openssl\ssl.h Sin embargo, puedes ver que el proyecto no lo ha hecho. Por lo tanto, podrías agregar como una ruta de inclusión y probablemente haga que esa solución funcione; o edite el código para #include "openssl/ssl.h" lugar.

He sido tremendamente prolijo aquí porque necesita comprender cómo funcionan las routes de inclusión antes de que pueda colocar bibliotecas en Windows y combinarlas todas. No hay magia, solo reglas simples.