¿Alguien ha conseguido compilar Curl? [Solucionado]

Iniciado por Kaxperday, 18 Mayo 2016, 20:10 PM

0 Miembros y 1 Visitante están viendo este tema.

Kaxperday

Bueno, me descargue el código de la página pero como sabeis tiene varias dependencias, y sus dependencias tienen dependencias, y dan errores, y no tuve manera de compilar ni zlib como para compilar curl.

Es por eso que acudí en la propia página a compilaciones hechas por terceros:

https://curl.haxx.se/download.html#Win32

Están ya por la versión 7.49 y la última compilación corresponde a la 7.40 y es la única que tiene las librerías, que tienen vulnerabilidades, pero mejor que nada por supuesto :X

¿Alguien ha conseguido compilarlo alguna vez, consejos? ¿dónde puedo encontrar su última compilación?, bueno mientras, iré pasando los .a a .lib a ver si encuentro la forma y así puedo usar las librerías estáticas..

Un saludo!


Edito: He intentado crear la .lib a partir de libcurl.a y libcurl.def así como con libssh2.a y libssh2.def, y he conseguido crear las ambas en .lib a partir del comando pero su contenido está mal construido, explico:

Primero abro el command prompt de MVS:

http://stackoverflow.com/questions/21476588/where-is-developer-command-prompt-for-vs2013

Una vez allí he intentado generar las librerías estáticas .lib con los .a y sus archivos .def, accediendo al directorio "lib" donde están archivos .a y .def Con el comando:

Citarlib /machine:i386 /def:libcurl.def
lib /machine:i386 /def:libssh2.def

Esto me crea libcurl.lib y libssh2.lib y sus .exp.

Sin embargo el .lib que me crea no tiene sentido ocupa 42kb mientras que el libcurl.a y libcurl.dll ocupan 660 kbs. Luego normal que al añadirle al proyecto me muestre mensaje de error diciendo que libcurl.dll no está en el equipo.

Creo un proyecto para C++ incluyo cabeceras, directorios de librerías (el "lib") y añado que quiero añadir las librerias libcurl.lib y libssh2.lib.

Compilo sin error un programa que usa libcurl, al ejecutar muestra error "el programa no puede iniciarse porue falta libcurl.dll en el equipo..".

¿?¿? ¿Cómo genero correctamente el .lib a partir del .a?

http://stackoverflow.com/questions/9346054/convert-from-mingw-a-to-vc-lib

Esto me genera un .lib de 42 kbs XD, también es cierto que hay más .a que tienen que ver tanto con libcurl como con libssh2. libcrypt.a libcurl.a lib....a y el libcurl.def pero el comando "lib" debería de valer igualmente, que ocurre.

Saludos sigo mirando.

Los .a son librerías estáticas de mingw, funcionan para codeblocks pero para VS no que usa .lib. Con el MVS command prompt siguiendo el tutorial unos dicen que se puede hacer otros no, yo lo he probado y ese fue el resultado.

http://stackoverflow.com/questions/5965171/what-is-a-file-with-extension-a

Vuelve edicion delicatesse:
http://stackoverflow.com/questions/20171165/getting-libcurl-to-work-with-visual-studio-2013
Lo he conseguido hacer compilar con nmake como pone en el ultimo link, sin embargo me aparece que simbolos externos no resueltos, he añadido los objet file al debug¿? y sigue igual, ¿porque no los reconoce?, en ello.

Solucionado esto ultimo también habia que añadir al preprocesador CURL_STATICLIB, ahora compila con la librería buena, PERO al ejecutar un codigo de prueba obtengo error en ejecucion debug assetion failed.., en ello.

Código (cpp) [Seleccionar]

CURL *curl;
CURLcode res;

curl = curl_easy_init();
if (curl) {
/* First set the URL that is about to receive our POST. This URL can
just as well be a https:// URL if that is what should receive the
data. */
curl_easy_setopt(curl, CURLOPT_URL, "https://www.google.co.uk");

/* Perform the request, res will get the return code */
res = curl_easy_perform(curl);

/* always cleanup */
curl_easy_cleanup(curl);
}
return 0;


curl_easy_perform(curl); heap corruption ¿?, quizás falte una directiva de preprocesador? :/

Jiji, me pasa lo mismo que a este:

https://curl.haxx.se/mail/lib-2010-11/0244.html

FINAL DELICATESSE EDITION: POR FIN, TENGO CURL  7.48 RULANDO FINO.

El error se debía a que estaba usando el modo debug en vez de release, con release no sale el debug:

http://www.cplusplus.com/forum/windows/172335/

Saludos  XDD

PD: me encantan los hilos que abro y me voy respondiendo a mi mismo hasta resolverlos ^^

Lo unico a ver si encuentro manera de poderlo usar en modo debug.
Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.

AlbertoBSD

Hola muchas veces me a pasado que abro un hilo y mientraa lo estoy editando encuentro el problema.

Que bueno que solucionaste tu problema.

Muy buena libreria yo la use para hacer un.bot de telegram.

Saludos
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

Kaxperday

#2
Pues si al final lo conseguí, muchos hilos lo hago, a veces más por dejar mi rastro de aprendizaje en el foro que por preguntar sobre un tema o pregunta, luego abro los primeros hilos que cree y me rio de lo noob que era jajaja.

He visto tu código de telegram y me ha parecido muy bueno, enhorabuena por el código, yo voy a usar esta librería para hacer un SSLStrip, para realizar la conexion al servidor con http o https de manera sencilla, antes que usar sockets y openssl que sería demasiado farragoso, y había visto hablar bien de esta librería, así que manos a la obra. Que pena que se acerca período de exámenes.. y no pueda probar la librería como me gustaría hehehe ;)

Saludos.

Edito: Por cierto para que te deje usar la librería en proyectos DEBUG encontré la forma de que funcionase, compilando de nuevo con el nmake y poniendo "DEBUG=yes" como parámetro ya que por defecto está desactivado :P

Importante esto para poderlo usar en un proyecto MT /MTd

http://www.chipkin.com/building-libcurl-on-windows-with-mt-and-mtd/
Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.