válido - Símbolos no resueltos al vincular un programa usando libcurl
xml document load (6)
Además de definir CURL_STATICLIB
, para mí también era necesario vincular las siguientes dependencias (incluidas libcurl.lib
o libcurld.lib
):
-
Ws2_32.lib
-
Wldap32.lib
Sé que esto es preguntas de programación, pero estoy frustrado tratando de descubrir lo que estoy haciendo mal ...
Estoy usando Visual Studio 2010 y seguí todos los pasos aquí: http://curl.haxx.se/libcurl/c/visual_studio.pdf
Cuando intento compilar mi solución sigo recibiendo este error:
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 ==========
Fuente:
// 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;
}
Después de muchas ideas y configuraciones, resolví el problema añadiendo esto:
#pragma comment(lib, "lib/libcurl_a.lib")
donde libcurl_a.lib
es el nombre del archivo curl lib y lib
es la carpeta que lo contiene.
He estado usando la versión estática de libcurl, y para vincular mi programa correctamente, tuve que agregar definición:
CURL_STATICLIB
para construir la configuración de mi proyecto.
Me encontré con un problema similar: descubrí que estaba haciendo referencia a la ubicación de 64 bits de libcurl.lib. Cambió el directorio de enlaces a la ubicación de 32 bits y el proyecto se compiló perfectamente.
Parece que las bibliotecas no están siendo conectadas con éxito. Asegúrese de que el directorio de la biblioteca esté configurado para incluir la ruta completa a libcurl dll. También asegúrese de que esta biblioteca se haya agregado realmente a su proyecto.
Yo tuve el mismo problema. Escribí cómo finalmente pude hacer que CurlLib funcione, aquí: http://quantcorner.wordpress.com/2012/04/08/using-libcurl-with-visual-c-2010/ si desea echar un vistazo. ¡Buena suerte!