2015-05-17 18 views
5

Also ich habe mit cURL als eine sehr schöne Bibliothek und funktioniert sehr gut in OSX. Aber auf Windows jetzt habe ich große Probleme damit, mit dieser Bibliothek fertig zu werden. Ich habe jetzt für 2 Tage gegoogelt und über ein Dutzend (im Detail) verschiedene Wege ausprobiert, um das fertig zu machen. Ohne Erfolg.cURL mit Visual Studio 2013

Hier sind einige Möglichkeiten, wie ich im Grunde versucht:

  1. Die direkte Download-: Das Problem ist hier bereits mit dem richtigen Download beginnt. Die offizielle Download-Seite ist ziemlich verwirrend, also dachte ich mir "cURL Download Wizard"> "libcurl development", was mir eine Version gibt, die ich in jedes Projekt einbinden sollte. Aber wie genau? In IRGENDEINEN Anweisungen führt es mich zu Verzeichnissen, die ich nicht einmal habe. Fast immer wird diese "curllib.lib" erwähnt. Ich habe ungefähr 6 verschiedene Versionen auf dieser Downloadseite heruntergeladen, in keinem von diesen gibt es diese Datei. (Siehe zum Beispiel Instruktion)
  2. Git + CMake: Als eine Lösung auf den oben genannten Link wird vorgeschlagen, Git Klon auf diesem zu verwenden. Ich habe dort alle Anweisungen gemacht und auch die Projekte mit nur Warnungen generiert. Aber hier steht auch:
    Nach der Installation Ziel zu installieren, finden Sie bin/include/lib Ordner in C: \ curl.vc12
    Nun, ich habe nicht wirklich seinen Punkt "Build install target", ich einfach die gesamte Projektkarte erstellen, so wie sie kommt. Kompiliert fein (115 erfolgreich, 0 fehlgeschlagen, 2 übersprungen). Aber jetzt ist C: \ curl.vc12 nicht da. Was muss ich vor dem Kompilieren vorbereiten?
  3. NuGet: Die Idee kommt aus dem Link in Punkt (1) wieder, eine andere Lösung mit NuGet.
    Mit Successfully added 'curl 7.30.0.2' to test. schien es auch nett, aber die Kompilierung simple.c führt zu einer Reihe von unresolved external symbol Linker-Fehler. Aber eine Lösung wird bereitgestellt:
    Stellen Sie sicher, dass das include-Verzeichnis und das lib-Verzeichnis unter den Visual C++ - Verzeichnissen in Projekteigenschaften angegeben sind. So
    in Project > Properties > VC++ Properties > "Include Directories" und
    Project > Properties > VC++ Properties > "Library Directories"
    sowie in Project > C/C++ > General > "Additional Include Directories" und in Project > Linker > General > "Additional Library Directories" Ich habe verzweifelt \ packages \ Pfad von meinem Projektordner.
    Wie in der Anleitung erwähnt, habe ich libcurl.lib;libeay32.lib;ssleay32.lib;Ws2_32.lib;libssh2.lib;zlib.lib;wldap32.lib; zu Project > Linker > Input > "Additional Dependencies" hinzugefügt.
    All das getan, die unresolved external symbol Fehler sind weg! Daher bekomme ich nur einen Fehler mit . Was kann ich hier machen?

Ich bin ziemlich neu zu allem. Aber ich bemühe mich jetzt wirklich, das endlich zum Laufen zu bringen. Was kann ich also tun?
Ich arbeite mit Visual Studio 2013 Community Edition. Die aktuellste Version von cURL ist 7.42.1. Jede Hilfe ist sehr willkommen!

+1

Haben Sie [dieses] (http://stackoverflow.com/questions/20171165/) gesehen? – uesp

+0

Schaue nochmal in meine Frage. (Der blaue Link) (= – beshtaa

Antwort

10

Hatte Probleme selbst, endlich hat es funktioniert. I heruntergeladen curl-7.42.1.zip von der official website. Innerhalb des Archivs finden Sie den Quellcode und winbuild/BUILD.WINDOWS.txt, die im Grunde die Anweisungen enthält, die ich befolgte. Ich gehe davon aus, dass es zu C: \ curl-7.42.1 entpackt wurde.

die Open Visual Studio command prompt sich an

C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ Tools \ Shortcuts

Diese automatisch die Umgebungsvariablen setzt benötigt Visuelle verwenden Studio-Tools wie der Compiler. Gehen Sie dann zum winbuild Verzeichnis und rufen

nmake/f Makefile.vc mode = dll

wie in der Textdatei beschrieben ich oben erwähnt.

, dass das Verzeichnis

C wird erstellen: \ curl-7.42.1 \ baut \ libcurl-vc-x86-Release-dll-ipv6-sspi-winssl

enthält Libcurl. DLL, libcurl.lib und die notwendigen Header-Dateien. Lassen Sie es in C:\curl-7.42.1\builds\release umbenennen: 'D

  1. Dann öffnen Sie Ihr Projekt.
  2. Öffnen Sie die Projekteigenschaften.
  3. Stellen Sie sicher, dass Sie Release als Konfiguration (oben links) wählen!
  4. Navigieren Sie zu VC++ Directories > Include directories und fügen C:\curl-7.42.1\builds\release\include
  5. C:\curl-7.42.1\builds\release\lib-VC++ Directories > Library directories hinzufügen.
  6. Gehen Sie zu Linker > Input > Additional Dependencies und fügen Sie libcurl.lib hinzu.
  7. Kopieren Sie schließlich C:\curl-7.42.1\builds\release\bin\libcurl.dll in Ihren Projektordner.

Das sollte den Trick tun! : D Wenn Sie cURL im Debug-Modus verwenden möchten, können Sie fast das gleiche tun, kompilieren mit nmake /f Makefile.vc mode=dll debug=yes, gehen Sie zu den Eigenschaften Ihres Projekts, fügen Sie die neu erstellten Verzeichnispfade (libcurl.lib zu libcurl_debug.lib ändern) und Sie sollten fertig sein .

+0

Danke für die schnelle Antwort, ich werde das bald versuchen! – beshtaa

+1

Mit Tränen in den Augen und einer Tasse Kaffee in meiner Hand kann ich weitermachen, weil du Herr mein Tag gemacht hast.: Danke sehr viel! Edit: Bitte ändern * Makefile.vs * zu * Makefile.vc * – beshtaa

+0

Schön zu hören, gern geschehen! :) Bearbeitete meine Post, wie Sie hingewiesen .. – Jeinzi

0

Ich hatte das gleiche Problem. Ich habe die Curl von https://github.com/curl/curl heruntergeladen. Sie können es sogar direkt mit Visual Studio 2013 kompilieren (aber seien Sie vorsichtig bei der Parametereinstellung: x64 mit release). Der Hauptunterschied besteht darin, dass Sie libcurl_imp.lib erhalten. Dann müssen Sie nur noch die Umgebungsvariablen wie oben beschrieben setzen. Ich möchte nur erwähnen, dass Sie libcurl_imp.lib anstelle von libcurl.lib in den zusätzlichen Abhängigkeiten verwenden müssen (ich vermute, dass diese Änderung auf die neue Version von curl zurückzuführen ist).