ti-enxame.com

Símbolos não resolvidos ao vincular um programa usando libcurl

Eu sei que isso é programação, mas estou frustrado tentando descobrir o que estou fazendo errado.

Estou usando o visual studio 2010 e segui todos os passos aqui: http://curl.haxx.se/libcurl/c/visual_studio.pdf

Quando tento compilar minha solução, continuo recebendo este erro:

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 ==========

Fonte:

// 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

Parece que as bibliotecas não estão sendo vinculadas com sucesso. Certifique-se de que o diretório da biblioteca esteja configurado para incluir o caminho completo para a dll libcurl. Certifique-se também de que esta biblioteca seja realmente adicionada ao seu projeto.

2
Willi Ballenthin

Eu tenho usado a versão estática do libcurl, e para vincular meu programa corretamente, eu tive que adicionar a definição:

CURL_STATICLIB

para construir a configuração do meu projeto.

80
stoiczek

Além de definir CURL_STATICLIB, para mim também foi necessário vincular as seguintes dependências (incluindo libcurl.lib ou libcurld.lib):

  • Ws2_32.lib
  • Wldap32.lib
20
cdonts

Eu tive o mesmo problema. Eu escrevi como finalmente consegui fazer CurlLib works, aqui: http://quantcorner.wordpress.com/2012/04/08/using-libcurl-with-visual -c-2010/ se você quiser dar uma olhada. Boa sorte!

4
tagoma

Eu me deparei com um problema semelhante - descobri que estava fazendo referência à localização de 64 bits do libcurl.lib. Alterou o diretório do link para o local de 32 bits e o projeto foi compilado perfeitamente.

4
wayne

Depois de muitas ideias e configurações, resolvi o problema adicionando isso:

#pragma comment(lib, "lib/libcurl_a.lib")

onde libcurl_a.lib é o nome do arquivo curl lib e lib é a pasta que o contém.

0
Zsolti