L'obtention de LibCurl pour travailler avec Visual Studio 2013
J'ai de la difficulté à obtenir LibCurl pour travailler avec Visual Studio 2013. J'ai téléchargé la version actuelle (curl-7.33.0) et essayé de suivre les instructions que j'ai trouvé sur ce site: À l'aide de LibCurl avec Visual 2010
Mais je ne trouve pas curllib.lib dans le dossier que j'ai téléchargé. Et j'ai toujours des erreurs:
Après des recherches sur internet pour obtenir de l'aide. Maintenant, je reçois ces messages d'erreur. Il semble y avoir un problème avec le lien pour libcurl.lib?
C'est ce que j'ai configuré:
À l'intérieur de /lib j'ai libcurl.lib et libcurl.dll
Mise à JOUR
J'ai téléchargé cette version Win32 MSVC: http://curl.haxx.se/download.html#Win32
Après l'ajout de la libcurl bibliothèques et de succès de la compilation, je suis maintenant recevoir ce message d'erreur:
The application was unable to start correctly (0xc000007b). Click OK to close the application.
Voici un exemple de code, je suis en train de lancer:
#include <iostream>
#include <stdio.h>
#include <curl/curl.h>
int main(void)
{
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://google.com");
res = curl_easy_perform(curl);
/* always cleanup */
curl_easy_cleanup(curl);
}
return 0;
}
DERNIÈRE MISE À JOUR
Je crois que j'ai eu LibCurl pour travailler avec Visual Studio 2013 maintenant. La persistance ftw!
Bien que, après avoir passé des heures à essayer de résoudre ces messages d'erreur, je suis un peu hésitant à dire tout fonctionne bien maintenant. C'est pourquoi je suis en train de monter un bounty sur cette question pour obtenir clair et concis des instructions sur l'obtention de LibCurl pour travailler avec Visual Studio 2013.
C'est ce que j'ai fait pour le faire fonctionner:
-
Tout d'abord, téléchargez le Win32 MSVC package ici: http://curl.haxx.se/download.html#Win32
Pour ces instructions souci, disons que vous avez téléchargé C:\LibCurl -
Démarrez un nouveau projet dans Visual Studio. Aller à Projet|Propriétés du Projet|VC++ Répertoires|include|
Ajouter le chemin du répertoire à l'intérieur du paquet téléchargé. (C:\LibCurl\include) -
Ensuite, allez à Projet|Propriétés du Projet|de l'éditeur de liens|Général|Bibliothèque Supplémentaire Répertoires|
Ajouter le chemin vers le répertoire lib. (Où curllib.dll est situé) -
Ensuite, allez à Projet|Propriétés du Projet|Gestionnaire d'Entrée|de|de Dépendances Supplémentaires|
Et d'ajouter curllib.lib -
Maintenant, si vous compilez un programme de test, vous obtiendrez probablement le message disant libsasl.dll est manquant. Vous aurez besoin de télécharger ce fichier et le mettre dans le même répertoire que votre build.
J'ai utilisé 7-Zip pour extraire libsasl.dll de OpenLDAP pour Windows. OpenLDAP pour Windows
C'est le résultat de mon test de code ci-dessus:
- Je suis tellement fatigué. Si quelqu'un se soucie de modifier mes instructions pour le rendre clair, s'il vous plaît. Je suis juste heureux d'avoir libcurl de travail.
- Merci de posté conclusion finale sur la façon de le faire fonctionner avec Visual Studio 2013. 🙂
- L'ironie. Je n'ai pas encore utiliser Windows plus, du moins pas maintenant.
- Ressemble incroyable, mais je reçois ce travail lors de la première installation de l'essayer! il n'arrive pas trop souvent.
- Merci pour le partage de votre solution. J'ai téléchargé "libsasl.dll" à cette adresse: dlldb.com/libsasl-dll" alors que je n'avais pas à installer "OpenLDAP pour Windows".
- "libsasl.dll", "openldap.dll" et "curllib.dll" faut les mettre quelque part que l'application de la trouver. Par exemple dans: "C:\Project\libcurl\VisualStudio\MyApplication\Debug\"
- Merci pour le guide détaillé! J'ai vu que la dernière version de msvc libcurl construire n'était pas disponible sur le site officiel. Ainsi, la bibliothèque, j'ai trouvé sur internet sur le lien ci-dessous. osdn.net/projects/sfnet_jcurltools/downloads/depending/...
Vous devez vous connecter pour publier un commentaire.
Je dirais que dans un commentaire, mais je suis en manque de points.
Vous n'avez pas à copier tout .dll dans votre programme exécuter catalogue.
Aller à Project | Properties | Propriétés de Configuration et en ligne Envrionnement écrire:
PATH=$(ExecutablePath)$(LocalDebuggerEnvironment)
.À partir de maintenant, tous les .dll à partir de tout catalogue que vous mentionnez dans Projet|Propriétés du Projet|VC++ Répertoires|Binaire devrait être utilisable sans les copier.
Le reste est exactement comme vous l'avez écrit.
Beaucoup de ces instructions ne sont pas à jour, car ils recommandent la win32-ssl-devel-msvc paquet pour curl, qui n'existe plus.
Les instructions suivantes vous permettent de construire libcurl à l'aide de seulement:
A. Construire libcurl bibliothèque statique
C:\libcurl
)"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat"
Pour initialiser votre VC variables d'environnement (ajuster votre VS 2013 répertoire d'installation si nécessaire)cd C:\libcurl\winbuild
nmake /f Makefile.vc mode=static VC=12
C:\libcurl\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl
B. Lien Contre libcurl dans Visual Studio
C:\libcurl\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\include
CURL_STATICLIB
C:\libcurl\builds\libcurl-vc12-x86-release-static-ipv6-sspi-winssl\lib
libcurl_a.lib
C. Appel libcurl de Votre Projet
L'exemple suivant montre un appel à libcurl:
vcvars64.bat
trouvé dansC:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64
(ou l'équivalent). Dans l'étape 6, vous devez spécifier que vous ciblez x64, comme suit:nmake /f Makefile.vc mode=static VC=12 MACHINE=x64
. Enfin, si vous avez déjà accidentellement construit pour l'architecture 64 bits avec le mauvais (32 bits) outils, allez dans le/builds
votre dossier de libcurl dossier, et de supprimer les dossiers notée avec x64nmake /f Makefile.vc mode=static enable_idn=no enable_sspi=no use_winssl=no enable_ipv6=no VC=12
La façon la plus simple de faire ce que j'ai trouvé est d'abord assurez-vous que nuget est installé.
http://www.nuget.org/
Puis de créer votre projet.
Ensuite, allez à http://www.nuget.org/packages/curl/ et suivre les instructions qui y est aller dans le gestionnaire de paquets de la console et tapez
PM> Install-Package curl
Si vous recherchez le répertoire packages dans votre répertoire de projet, vous trouverez les fichiers et les fichiers de bibliothèque. Notez qu'il existe une version pour Visual Studio 110, 120, mais parce que libcurl est une bibliothèque C vous pouvez l'utiliser avec Visual Studio 2013. Assurez-vous que le répertoire include et lib sont spécifiés sous Visual C++ répertoires dans les propriétés du projet.
Assurez-vous d'avoir les fichiers suivants que l'addition d'entrée à l'éditeur de liens
libcurl.lib;libeay32.lib;ssleay32.lib;Ws2_32.lib;libssh2.lib;zlib.lib;wldap32.lib;
rmt_curl
travail sur VS2017?rmt_curl
ne fonctionne pas sur VS2017 pour moi. J'ai dû changer d'outils à la précédente. Dans Propriétés du Projet | Général | Plate-forme d'Outils changer en Visual Studio 2015 (v140) et maintenant ça marche.Une autre façon d'utiliser curl/libcurl est de construire avec CMake v2.8.12+ (en supposant que git est déjà installé sur votre ordinateur)
Ouvrir la fenêtre de commande et de changement de direction à dossier approprié
Ouvrir généré CURL.la sln dans Visual studio et de le construire.
CMake options que j'ai utilisé dans l'exemple
Après la construction de la cible install, vous trouverez bin/include/lib dans C:\curl.vc12
Fournir ces chemin d'accès à votre solution et de construire votre code avec curl lib.
J'ai essayé de le faire à partir de zéro avec VS2012 (je n'ai pas de 2013) et il fonctionne parfaitement.
Donc, je ne sais pas quel est ton problème, mais:
C'est un peu tard, mais pour ceux qui ont encore des problèmes, cette méthode fonctionne le mieux pour moi:
Par exemple:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin
.http://curl.haxx.se/download.html
et décompressez-le.curl-X/winbuild
.vcvars32.bat
.nmake /f Makefile.vc mode=static VC=12
.curl-X/builds/libcurl-XXX
.Vous y trouverez la comprend et d'une
libcurl_a.lib
.Cette lib fonctionne très bien pour moi.
N'oubliez pas de définir
-DCURL_STATICLIB
lorsque vous compilez votre code avec cette lib.MACHINE=x64
BUILD.WINDOWS.txt
):If you are using mode=static nmake will create and link to the static build of libcurl but *not* the static CRT. If you must you can force nmake to link in the static CRT by passing RTLIBCFG=static. Typically you shouldn't use that option, and nmake will default to the DLL CRT. RTLIBCFG is rarely used and therefore rarely tested.
Pour Visual Studio 2017, les étapes de la lien a fonctionné pour moi. Dans le cas où le lien expire ou, plus spécifiquement, pour ceux qui téléchargent de la libcurl fichier zip au lieu de clonage à partir de GitHub, je note les étapes ici.
Définir des variables d'environnement avec
“C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat” x64
. Si la commande est acceptée, vous verrez un message qui ditEnvironment initialized for 'x64'
Télécharger et extraire le comprimé libcurl fichier de télécharger libcurl. J'ai utilisé le
.zip
fichier.cd
enwinbuild
répertoire à l'intérieur de l'extrait libcurl dossier.nmake /f Makefile.vc mode=dll MACHINE=x64
à construire. Pour plus d'informations sur les options de construction, veuillez vous référer àBUILD.WINDOWS
fichier texte danswinbuild
dossier.cd
enbuilds
dossier pour trouver les fichiers compilés.Tout le meilleur!
Le problème est que le cibles pour la valeur par défaut VS2013 outils de plate-forme ne sont pas définies dans les packages NuGet. C'est pourquoi il travaille en VS2012, mais pas VS2013. J'ai créé manuellement le remplacement des cibles de fichiers. Les Instructions et télécharger:
https://github.com/evoskuil/curl-nuget-targets
Télécharger le curl v7.37.0 code source et d'utiliser le projet Visual Studio fichiers fournis.
J'ai passé les dernières semaines polissage mon projet personnel, des fichiers, qui ont été basé sur l'original VC6 fichiers, et de les ajouter au référentiel.
.dsw /.dsp (VC6), .la sln /.vcproj (VC7, VC7.1, VC8 et VC9 ainsi que .la sln /.vcxproj (VC10, VC11 et VC12) les fichiers sont fournis pour les deux DLL et Statique de la Bibliothèque construit avec le soutien de OpenSSL et Windows SSPI /SChannel dans les deux Win32 et x64 configurations.
J'ai trouvé un moyen facile de le faire fonctionner dans VC++ à l'aide de la dernière package. En gros, j'ai suivi la procédure décrite dans l'Aide de libcurl dans Visual Studio. La libcurl et VC++ sont très anciennes dans l'enseignement.
D'abord télécharger le fichier ZIP sur la page de téléchargement de https://curl.haxx.se/download.html Le package ZIP est https://curl.haxx.se/download/curl-7.50.1.zip
Aller à projets-> Windows\VC10 (ou votre version de VC)\lib\libcurl.la sln, ouvrez le projet dans VC++.
Construire le projet de la bibliothèque Libération. DLL de débogage ne fonctionne pas sur mon VC++.
Allez construire\Win32\VC10\DLL de la Version, vous pouvez trouver la lib et dll les fichiers générés à partir de l'étape précédente.
Créer un nouveau dossier, avec include et lib. Copie de la libcurb.dll et libcurb.lib ce qui est dans le DLL du dossier de lancement de la nouvelle\lib. Copie tout dans curl-7.50.1\inclure à nouveau\inclure le dossier.
C++ Propriétés -> Propriétés de Configuration -> Répertoires de VC++, ajouter de nouveaux\include pour Inclure des Répertoires, de nouvelles\lib à la Bibliothèque Répertoires; d'ajouter de nouveaux\lib à l'éditeur de liens -> Général> d'autres Répertoires de la Bibliothèque, ajouter libcurl.lib à l'éditeur de liens -> Input -> Dépendances Supplémentaires
Il semble que je dois mettre le fichier dll dans le même dossier avec le fichier exécutable.
Il devrait fonctionner.