2016-04-13 3 views
0

Ich versuche, dies in Windows mit Git CMDWindows-Lösung für openssl/ssl.h keine solche Datei?

C zu tun: \ Users \ Ove \ paho> git clone https://github.com/eclipse/paho.mqtt.c.git
C: \ Benutzer \ Ove \ paho> cd org.eclipse.paho. mqtt.c.git
C: \ Benutzer \ Ove \ paho> msbuild "Build Windows \ Paho C MQTT APIs.sln"/p: Konfiguration = Freigabe

ich msbuild bin stecken, wo es eine wiederholt Serie von Fehlern:

'openssl/ssl.h': Keine solche Datei oder das Verzeichnis

ich OpenSSL installiert haben, und es ist eine Umgebungsvariable in einzurichten:

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

ich habe versucht, indem andere Systeme Wege wie:

C: \ Benutzer \ Ove \ openSSL \ \ openssl

012 umfassen

das ist, wo ssl.h
befindet ich auch die OpenSSL-Ordner im paho\src Ordner versucht haben, kleben lokal
aber ich bekomme immer noch diese Fehler

Antwort

1

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.

Verwandte Themen