2015-05-17 13 views
5

Quindi sono venuto con cURL come una libreria molto bella e funziona molto bene in OSX. Ma su Windows ora ho grossi problemi con la preparazione di questa libreria. Ho cercato su Google ora per circa 2 giorni e ho provato più di una dozzina (in dettaglio) in diversi modi per farlo diventare pronto. Senza alcun successo.cURL con Visual Studio 2013

Ecco alcuni modi ho praticamente provato:

  1. Il download diretto: Il problema qui inizia già con il download destra. La pagina di download ufficiale è piuttosto confusa, quindi ho considerato questo "Download Wizard cURL"> "sviluppo di libcurl" che mi dà una versione, che dovrei essere in grado di includere in qualsiasi progetto. Ma come esattamente includerlo? In tutte le istruzioni là fuori mi porta a directory che non ho nemmeno. Quasi sempre viene menzionato questo "curllib.lib". Ho scaricato circa 6 diverse versioni su quella pagina di download, in nessuna di queste c'è questo file. (Vedere ad esempio l'istruzione this)
  2. Git + CMake: Come soluzione su Link sopra, è consigliabile utilizzare git clone su questo. Ho fatto tutte le istruzioni lì e anche ottenere i progetti generati con solo avvertimenti. Ma qui si dice pure:
    Dopo aver creato l'obiettivo di installazione, troverai cartelle bin/include/lib in C: \ curl.vc12
    Beh, non ho davvero capito il suo punto di "build install target", io basta costruire l'intera mappa del progetto come viene. Compila bene (115 riusciti, 0 falliti, 2 saltati). Ma ora C: \ curl.vc12 non c'è. Cosa devo pre-impostare prima di compilarlo?
  3. NuGet: L'idea viene di nuovo dal collegamento in punto (1), una soluzione diversa con NuGet.
    Con Successfully added 'curl 7.30.0.2' to test. sembrava anche bello, ma compilare simple.c porta a un mucchio di errori di linker unresolved external symbol. Ma viene fornita una soluzione:
    Assicurarsi che la directory di inclusione e la directory lib siano specificate nelle directory di Visual C++ nelle proprietà del progetto.
    Così in Project > Properties > VC++ Properties > "Include Directories" e
    Project > Properties > VC++ Properties > "Library Directories"
    così come in Project > C/C++ > General > "Additional Include Directories" e in Project > Linker > General > "Additional Library Directories" ho disperatamente aggiunto il \ Packages \ percorso dalla mia cartella del progetto.
    Come menzionato nelle istruzioni, ho aggiunto libcurl.lib;libeay32.lib;ssleay32.lib;Ws2_32.lib;libssh2.lib;zlib.lib;wldap32.lib; a Project > Linker > Input > "Additional Dependencies".
    Tutto ciò fatto, gli errori unresolved external symbol sono andati! Pertanto ricevo solo un errore che dice cannot open file 'libcurl.lib'. Cosa posso fare qui?

Sono abbastanza nuovo a tutto ciò. Ma sto provando davvero duramente per farlo finalmente funzionare. Quindi cosa posso fare?
Lavoro con Visual Studio 2013 Community Edition. La versione attualmente più recente di cURL è 7.42.1. Qualsiasi aiuto è benvenuto!

+1

Hai visto [questo] (http://stackoverflow.com/questions/20171165/)? – uesp

+0

Cerca di nuovo nella mia domanda. (Il link blu) (= – beshtaa

risposta

10

Ho avuto problemi, finalmente ha funzionato ora. Ho scaricato curl-7.42.1.zip dallo official website. All'interno dell'archivio troverai il codice sorgente e winbuild/BUILD.WINDOWS.txt, che contiene sostanzialmente le istruzioni che ho seguito. Suppongo che sia stato decompresso in C: \ curl-7.42.1.

Aprire il Visual Studio command prompt situato a

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

Questa imposta automaticamente le variabili di ambiente necessarie per utilizzare Visual Strumenti di studio come il compilatore. Quindi spostare la directory winbuild e chiamare

nmake/f modalità Makefile.vc = dll

come descritto nel file di testo che ho citato sopra.

che creerà la directory

C: \ curl-7.42.1 \ costruisce \ libcurl-VC-x86-release-dll-ipv6-sspi-winssl

contenente libcurl. dll, libcurl.lib e i file di intestazione necessari. Rinominiamolo in C:\curl-7.42.1\builds\release: 'D

  1. Quindi aprire il progetto.
  2. Apre le proprietà del progetto.
  3. Assicurati di scegliere Release come configurazione (angolo in alto a sinistra)!
  4. Spostarsi VC++ Directories > Include directories e aggiungere C:\curl-7.42.1\builds\release\include
  5. Aggiungi C:\curl-7.42.1\builds\release\lib-VC++ Directories > Library directories.
  6. Vai a Linker > Input > Additional Dependencies e aggiungi libcurl.lib.
  7. Infine copia C:\curl-7.42.1\builds\release\bin\libcurl.dll nella cartella del progetto.

Questo dovrebbe fare il trucco! : D Se si desidera utilizzare cURL in modalità di debug, è possibile eseguire quasi la stessa operazione, ricompilare utilizzando nmake /f Makefile.vc mode=dll debug=yes, accedere alle proprietà del progetto, aggiungere i percorsi di directory appena creati (cambiando libcurl.lib in libcurl_debug.lib) e si dovrebbe fare .

+0

Grazie per la rapida risposta, ci proverò presto! – beshtaa

+1

Con le lacrime agli occhi e una tazza di caffè in mano posso andare avanti, perché tu hai fatto il mio giorno. (: Grazie molto! Modifica: Si prega di cambiare * Makefile.vs * a * Makefile.vc * – beshtaa

+0

Bello sentire, prego! :) Ho modificato il mio post come indicato. – Jeinzi

0

Ho avuto lo stesso problema. Ho scaricato il ricciolo da https://github.com/curl/curl. puoi effettivamente compilarlo direttamente con Visual Studio 2013 (ma attenzione con l'impostazione dei parametri: x64 con release). La principale differenza è che ti dà libcurl_imp.lib. Quindi tutto ciò che devi fare è impostare le variabili d'ambiente come descritto sopra. Voglio solo menzionare, dovrai usare libcurl_imp.lib piuttosto che libcurl.lib nelle dipendenze aggiuntive (ho il sospetto che questa modifica sia dovuta alla nuova versione di curl).