Damit begehen können Sie sehen, was passiert ist
https://github.com/eclipse/paho.mqtt.c/commit/543e761474e4836162a0f4428323173abf2de5ad#diff-0d89939d72d5bb4940c5f129d135d9f4
Fenster und MSVC haben keine Art von einem System zum Auffinden von Bibliothek-Header. Diese Codebasis hat natürlich ihr eigenes System, um die openssl-Header zu lokalisieren, die eine Umgebungsvariable verwenden.
openssl.cfg sieht aus wie eigene Betriebskonfiguration des OpenSSL, völlig unabhängig von irgendetwas zu bauen.
Sie sagen, Sie haben versucht, "Hinzufügen" (was bedeutet das?) C:\Users\Ove\openssl\include\openssl
(was?), Die Sie sagen, ist "wo ssl.h" residiert. Na und? Ihr Compilerfehler sagt Ihnen nicht, dass es ssl.h fehlt. Es sagt dir, dass es fehlt openssl/ssl.h
. Vielleicht, wenn Sie „added“ C:\Users\Ove\openssl\include
die openssl/ssl.h
enthält? Aber ich bin mir nicht sicher, wie es dahin gekommen wäre, wenn du es nicht kopiert hättest, was die Dinge für dich selbst verwirrender macht.
Ich werde Ihnen sagen, was ich tun würde:
set OpenSSLDir=C:\OpenSSL-Win32\include
Inbetriebnahme des OpenSSL-Ordner in paho\src
gearbeitet haben kann, wenn sie von „openssl Ordner“ Sie bedeuten C:\OpenSSL-Win32\include\openssl
und nicht C:\OpenSSL-Win32
- wenn das Projekt hatte getan, um das Äquivalent von -I.
, was bedeutet, dass paho\src\SSLSocket.c
-#include <openssl/ssl.h>
versucht es bei paho\src\openssl\ssl.h
finden konnte. Wie Sie sehen, hat das Projekt das nicht getan. Daher könnten Sie .
als Include-Pfad hinzufügen und diese Lösung wahrscheinlich funktionieren lassen. oder bearbeiten Sie den Code stattdessen auf #include "openssl/ssl.h"
.
Ich bin hier schon sehr ausführlich gewesen, weil Sie verstehen müssen, wie Include-Pfade funktionieren, bevor Sie Bibliotheken in Windows einfügen und sie alle kombinieren können. Es gibt keine Magie, nur einfache Regeln.