2013-06-15 7 views
6

ich die neueste Version von OpenSSL heruntergeladen haben http://www.openssl.org/source/OpenSSL in Visual Studio 2012 mit

Ich mag würde es in Visual Studio 2012 verwenden, insbesondere die md5/sha-1-Hash einer Datei bekommen, aber ich kann die Umgebung nicht in die openssl-Bibliothek aufnehmen. Um ehrlich zu sein, ich war verwirrt, was ich einbeziehen sollte, und wo, aber ich habe die README-s gelesen.

Ich bekomme diesen Fehler.

Error 1 error LNK2019: unresolved external symbol _MD5_Init referenced in function _main 

Also meine Frage ist, habe ich die neueste Version (OpenSSL-1.0.1e.tar.gz) heruntergeladen, was soll ich in VS2012 Config Lage sein, die lib zu benutzen? Vielen Dank!

UPDATE

Diese Frage hat mir auch geholfen, die Lösung zu finden. Boost SSL with Visual Studio 2010 and OpenSSL

Die Schritte der openSSL lib mit VS2012 verwenden erforderlich:

  • herunterladen und installieren Sie eine Version (ich habe 64-Bit-Betriebssystem, aber 32bit openssl ich installiert) von http://slproweb.com/products/Win32OpenSSL.html.
  • Neues Projekt in VS, dann Konfigurationseigenschaften/C/C++/Allgemein/weitere Verzeichnisse enthalten: openssl umfassen Ordner (C: \ OpenSSL-Win32 \ include)
  • Linker/Allgemein/Weitere Bibliothek Ordner auswählen: C: \ OpenSSL -Win32 \ lib
  • Linker/Input/zusätzliche Abhängigkeiten:

libeay32.lib libeay32MTd.lib libeay32MT.lib libeay32MDd.lib libeay32MD.lib ssleay32.lib ssleay32MTd.lib ssleay32MT.lib ssleay32MDd. lib ssleay32MD.lib

(war es geschrieben, dass ich nur noch, dass man hinzufügen, die mit C übereinstimmt/C++/Codegenerierung/Runtime-Bibliothek, aber es funktioniert mich auf diese Weise.)

  • Kopieren theese Dateien in aktuellen VS Ordner/VC/lib
+1

Was meinen Sie mit "Kopieren Sie diese Dateien in den aktuellen VS-Ordner/VC/lib"? –

Antwort

5

Mit welchem ​​Compiler haben Sie OpenSSL kompiliert? Hast du MinGW benutzt? Wenn ja, vergewissern Sie sich, dass Sie sie nicht entfernen (oder nur mit --strip-unnoeded), sonst werden Import-Symbole entfernt. Stimmen die Header- und die Lib-Version überein?

Vielleicht möchten Sie vorgebauten diejenigen aus ausprobieren: http://slproweb.com/products/Win32OpenSSL.html diejenigen arbeiten sicher.

+0

Ich denke, die vorgebauten ist eine gute Wahl, jetzt habe ich heruntergeladen (Win64 OpenSSL v1.0.1e, ich habe 64bit W7), installiert es. Im OpenSSL-Win64-Verzeichnis gibt es die Includes und in der Lib die .libs. Was sollte ich jetzt tun? SHall I Kopiere sie in VS-Verzeichnis, oder was sollte ich in VS konfigurieren? – rdanee

+0

Ich setze C/C++/Allgemein/Zusätzliche Include Dirs zu OpenSSL-Win64/include, OpenSSL-Win64/lib, und ich setze die Abhängigkeiten zu libeay32.lib, ssleay32.lib. Ich habe das gleiche Problem – rdanee

+0

Es ist der richtige Weg, es zu tun. Sind Sie sicher, dass Sie das VC-Verzeichnis hinzugefügt haben? zum Beispiel C: \ OpenSSL-WinXX \ lib \ VC oder C: \ OpenSSL-WinXX \ lib \ VC \ static für statische Bibliotheken.Dann verlinken Sie gegen MT-Bibliotheken für Release und MTd für Debug-Builds. (libeay32MT.lib, ...) – Thomas