web-dev-qa-db-fra.com

Symboles non résolus lors de la liaison d'un programme à l'aide de libcurl

Je sais que ce sont des questions de programmation, mais je suis simplement frustré d’essayer de comprendre ce que je fais de travers.

J'utilise Visual Studio 2010 et j'ai suivi toutes les étapes ici: http://curl.haxx.se/libcurl/c/visual_studio.pdf

Lorsque j'essaie de compiler ma solution, l'erreur continue de se produire:

1>------ Build started: Project: LibCurl, Configuration: Debug Win32 ------
1>LibCurl.obj : error LNK2019: unresolved external symbol __imp__curl_easy_cleanup referenced in function _main
1>LibCurl.obj : error LNK2019: unresolved external symbol __imp__curl_easy_perform referenced in function _main
1>LibCurl.obj : error LNK2019: unresolved external symbol __imp__curl_easy_setopt referenced in function _main
1>LibCurl.obj : error LNK2019: unresolved external symbol __imp__curl_easy_init referenced in function _main
1>C:\Users\Kyle\Documents\Visual Studio 2010\libcurl\VisualStudio\LibCurl\Debug\LibCurl.exe : fatal error LNK1120: 4 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

La source:

// LibCurl.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#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;
}
29
Kyle

On dirait que les bibliothèques ne sont pas liées avec succès. Assurez-vous que le répertoire de la bibliothèque est configuré pour inclure le chemin d'accès complet à la DLL libcurl. Assurez-vous également que cette bibliothèque est réellement ajoutée à votre projet.

2
Willi Ballenthin

J'utilise la version statique de libcurl, et pour lier correctement mon programme, j'ai dû ajouter une définition:

CURL_STATICLIB

construire la configuration de mon projet.

80
stoiczek

En plus de définir CURL_STATICLIB, il était également nécessaire pour moi de lier les dépendances suivantes (y compris libcurl.lib ou libcurld.lib):

  • Ws2_32.lib
  • Wldap32.lib
20
cdonts

J'ai eu le même problème. J'ai écrit comment j'ai finalement pu faire fonctionner CurlLib, ici: http://quantcorner.wordpress.com/2012/04/08/using-libcurl-with-visual-c- 2010 / si vous souhaitez jeter un coup d'œil. Bonne chance!

4
tagoma

J'ai rencontré un problème similaire - j'ai constaté que je faisais référence à l'emplacement 64 bits de libcurl.lib. Changement du répertoire de liens à l’emplacement 32 bits et compilation parfaite du projet.

4
wayne