4 votes

Liaison de libcURL dans Visual Studio 2008 Express

Ma première question ici :

J'ai des difficultés à utiliser libcURL dans un projet c++. Je n'arrive même pas à la lier. J'utilise Windows XP et Visual C++ 2008 Express Edition.

Voici donc ce que j'ai fait :

  1. LibcURL téléchargée : curl-7.19.5-devel-mingw32.zip
  2. Ouverture d'un nouveau projet en ligne de commande dans VC++.
  3. Inclure les dossiers 'lib' et 'include' dans mon nouveau projet (peut-être trivial mais cela m'a pris du temps ;-)
  4. dans Propriétés->C/C++->Général : Ajouté le dossier 'include' à 'dossiers supplémentaires à inclure'.
  5. dans Propriétés->Lieur->Général : Ajouté le dossier 'lib' à 'dossiers supplémentaires avec bibliothèques'.
  6. dans Propriétés->Lieur->Entrée : Ajout de dépendances supplémentaires : libcurl.a libcrypto.a libeay32.a libidn.a libssh2.a libssh2dll.a libssl32.a libssl.a libz.a libzdll.a ws2_32.lib wldap32.lib
  7. dans Propriétés->C/C++->Préprocesseur : Ajouté la définition 'CURL_STATICLIB'.
  8. J'ai décoché la case 'En-têtes précompilés' et je me suis assuré que 'Multithreaded-DLL (/MD)' est utilisé.

Maintenant, j'ai copié l'exemple simple.c (de http://curl.haxx.se/lxr/source/docs/examples/simple.c ) dans mon fichier de projet principal. Lorsque j'essaie de compiler, j'obtiens le résultat suivant :

Neues Erstellen gestartet: Projekt: curl_project, Konfiguration: Debug Win32
Die Zwischen- und Ausgabedateien für das Projekt "curl_project" mit der Konfiguration "Debug|Win32" werden gelöscht.
Kompilieren...
stdafx.cpp
Kompilieren...
curl_project.cpp
Manifest in Ressourcen wird kompiliert...
Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
Copyright (C) Microsoft Corporation.  All rights reserved.
Verknüpfen...
libcurl.a(ftp.o) : error LNK2001: Nicht aufgelöstes externes Symbol "_strtoll".
libcurl.a(file.o) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_strtoll" in Funktion "_file_do".
libcurl.a(cookie.o) : error LNK2001: Nicht aufgelöstes externes Symbol "_strtoll".
libcurl.a(transfer.o) : error LNK2001: Nicht aufgelöstes externes Symbol "_strtoll".
libcurl.a(ssh.o) : error LNK2001: Nicht aufgelöstes externes Symbol "_strtoll".
libcurl.a(http.o) : error LNK2001: Nicht aufgelöstes externes Symbol "_strtoll".
libcurl.a(mprintf.o) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "___umoddi3" in Funktion "_dprintf_formatf".
libcrypto.a(b_print.o) : error LNK2001: Nicht aufgelöstes externes Symbol "___umoddi3".
libcrypto.a(bn_word.o) : error LNK2001: Nicht aufgelöstes externes Symbol "___umoddi3".
libcurl.a(mprintf.o) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "___udivdi3" in Funktion "_dprintf_formatf".
libcrypto.a(b_print.o) : error LNK2001: Nicht aufgelöstes externes Symbol "___udivdi3".
libcrypto.a(e_atalla.o) : error LNK2001: Nicht aufgelöstes externes Symbol "__alloca".
libcrypto.a(eng_padlock.o) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__alloca" in Funktion "_ENGINE_load_padlock".
libcrypto.a(sha512.o) : error LNK2001: Nicht aufgelöstes externes Symbol "__alloca".
libcrypto.a(bn_prime.o) : error LNK2001: Nicht aufgelöstes externes Symbol "__alloca".
libcurl.a(mprintf.o) : error LNK2001: Nicht aufgelöstes externes Symbol "__alloca".
libcurl.a(formdata.o) : error LNK2001: Nicht aufgelöstes externes Symbol "__alloca".
libcrypto.a(err_prn.o) : error LNK2001: Nicht aufgelöstes externes Symbol "__alloca".
libcrypto.a(cryptlib.o) : error LNK2001: Nicht aufgelöstes externes Symbol "__alloca".
libcurl.a(progress.o) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "___divdi3" in Funktion "_time2str".
libssh2.a(scp.o) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_snprintf" in Funktion "_libssh2_scp_send_ex".
C:\Dokumente und Einstellungen\Punkx\Eigene Dateien\Visual Studio 2008\Projects\curl_project\Debug\curl_project.exe : fatal error LNK1120: 6 nicht aufgelöste externe Verweise.
Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\Punkx\Eigene Dateien\Visual Studio 2008\Projects\curl_project\curl_project\Debug\BuildLog.htm" gespeichert.
curl_project - 22 Fehler, 0 Warnung(en)
========== Alles neu erstellen: 0 erfolgreich, Fehler bei 1, 0 übersprungen ==========

Quelqu'un peut-il voir ce que j'ai oublié ou où se situe le problème ? Je suis un débutant en C++, donc cela pourrait être quelque chose de banal... Merci pour votre aide !

6voto

Joe Points 17829

Vous utilisez les bibliothèques MinGW avec le compilateur Visual C++. Utilisez le paquetage binaire correct et/ou construisez-le vous-même.

Si vous utilisez Visual C++, vous ne devriez pas avoir affaire à des fichiers .a mais uniquement à des .lib.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X