<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p style="margin-top:0;margin-bottom:0">Hola muy buenas,</p>
<p style="margin-top:0;margin-bottom:0">Estoy intentando utilizar la librería curl en windows para para poder gestionar la API de una web y no soy capaz.</p>
<p style="margin-top:0;margin-bottom:0">Instalé CodeBlocks y MymGW y para<span style="font-size: 12pt;"> instalar Curl abrí msys y escribí esto:</span></p>
<p style="margin-top:0;margin-bottom:0"><br>
</p>
<p style="margin-top:0;margin-bottom:0"><span style="color: rgb(0, 111, 201);">$ ./configure --prefix=/usr/local --without-ssl
<span style="color: rgb(255, 0, 0);">--disable-shared</span> --build=x86_64-w64-mingw32 CPPFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"</span><br>
</p>
<p style="margin-top:0;margin-bottom:0"><span><span style="color: rgb(0, 111, 201);">$ make install-strip</span><br>
</span></p>
<p style="margin-top:0;margin-bottom:0"><span><span><br>
</span></span></p>
<p style="margin-top:0;margin-bottom:0"><span><span>Y parece que todo fue bien.</span></span></p>
<p style="margin-top:0;margin-bottom:0"><span><span>He ido en CodeBlocks a Settings/Compiler/Search directories y he anadido estas los rutas:</span></span></p>
<p style="margin-top:0;margin-bottom:0"><span><span><br>
</span></span></p>
<p style="margin-top:0;margin-bottom:0"><span><span><span></span></span></span></p>
<p style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<span style="color: rgb(0, 111, 201);">C:\MinGW\msys\1.0\local\lib</span></p>
<p style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<span style="color: rgb(0, 111, 201);">C:\MinGW\msys\1.0\local\</span><span style="color: rgb(0, 111, 201);">include</span><br>
</p>
<div> </div>
<div>Intento ejecutar este programa, pero me da error:</div>
<p style="margin-top:0;margin-bottom:0"><span><span><br>
</span></span></p>
<p style="margin-top:0;margin-bottom:0"><span><span></span></span></p>
<div><span style="color: rgb(0, 111, 201);">#include <stdio.h></span></div>
<div><span style="color: rgb(0, 111, 201);">#include <curl/curl.h></span></div>
<div><br>
</div>
<div><span style="color: rgb(0, 111, 201);">int main(void)</span></div>
<div><span style="color: rgb(0, 111, 201);">{</span></div>
<div><span style="color: rgb(0, 111, 201);">  CURL *curl;</span></div>
<div><span style="color: rgb(0, 111, 201);">  CURLcode res;</span></div>
<div><br>
</div>
<div><span style="color: rgb(0, 111, 201);">  curl = curl_easy_init();</span></div>
<div><span style="color: rgb(0, 111, 201);">  if(curl) {</span></div>
<div><span style="color: rgb(0, 111, 201);">    curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");</span></div>
<div><span style="color: rgb(0, 111, 201);">    /* example.com is redirected, so we tell libcurl to follow redirection */</span></div>
<div><span style="color: rgb(0, 111, 201);">    curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);</span></div>
<div><br>
</div>
<div><span style="color: rgb(0, 111, 201);">    /* Perform the request, res will get the return code */</span></div>
<div><span style="color: rgb(0, 111, 201);">    res = curl_easy_perform(curl);</span></div>
<div><span style="color: rgb(0, 111, 201);">    /* Check for errors */</span></div>
<div><span style="color: rgb(0, 111, 201);">    if(res != CURLE_OK)</span></div>
<div><span style="color: rgb(0, 111, 201);">      fprintf(stderr, "curl_easy_perform() failed: %s\n",</span></div>
<div><span style="color: rgb(0, 111, 201);">              curl_easy_strerror(res));</span></div>
<div><br>
</div>
<div><span style="color: rgb(0, 111, 201);">    /* always cleanup */</span></div>
<div><span style="color: rgb(0, 111, 201);">    curl_easy_cleanup(curl);</span></div>
<div><span style="color: rgb(0, 111, 201);">  }</span></div>
<div><span style="color: rgb(0, 111, 201);">  return 0;</span></div>
<div><span style="color: rgb(0, 111, 201);">}</span></div>
<div><span style="color: rgb(0, 111, 201);"><br>
</span></div>
<div><span style="color: rgb(0, 111, 201);">//------------------------------------------------------------------------------------------------------------------------------------------------</span></div>
<div><span style="color: rgb(0, 111, 201);"><br>
</span></div>
<div>
<div><span style="color: rgb(0, 111, 201);">||=== Build: Debug in Hello Curl (compiler: GNU GCC Compiler) ===|</span></div>
<div><span style="color: rgb(0, 111, 201);">obj\Debug\main.o||In function `main':|</span></div>
<div><span style="color: rgb(0, 111, 201);">C:\Users\vaklam\Documents\hello Crul\Hello Curl\Hello Curl\main.cpp|9|undefined reference to `_imp__curl_easy_init'|</span></div>
<div><span style="color: rgb(0, 111, 201);">C:\Users\vaklam\Documents\hello Crul\Hello Curl\Hello Curl\main.cpp|11|undefined reference to `_imp__curl_easy_setopt'|</span></div>
<div><span style="color: rgb(0, 111, 201);">C:\Users\vaklam\Documents\hello Crul\Hello Curl\Hello Curl\main.cpp|13|undefined reference to `_imp__curl_easy_setopt'|</span></div>
<div><span style="color: rgb(0, 111, 201);">C:\Users\vaklam\Documents\hello Crul\Hello Curl\Hello Curl\main.cpp|16|undefined reference to `_imp__curl_easy_perform'|</span></div>
<div><span style="color: rgb(0, 111, 201);">C:\Users\vaklam\Documents\hello Crul\Hello Curl\Hello Curl\main.cpp|19|undefined reference to `_imp__curl_easy_strerror'|</span></div>
<div><span style="color: rgb(0, 111, 201);">C:\Users\vaklam\Documents\hello Crul\Hello Curl\Hello Curl\main.cpp|23|undefined reference to `_imp__curl_easy_cleanup'|</span></div>
<div><span style="color: rgb(0, 111, 201);">||error: ld returned 1 exit status|</span></div>
<div><span style="color: rgb(0, 111, 201);">||=== Build failed: 7 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|</span></div>
<div><br>
</div>
Por lo que he leído tiene que ver con el uso de la librería en modo static o dynamic y entiendo que que la librería está instalada como estática.</div>
<div> En la propia página de la librería explican esto:</div>
<div><a href="https://curl.haxx.se/docs/install.html" class="OWAAutoLink" id="LPlnk478247" previewremoved="true">https://curl.haxx.se/docs/install.html</a></div>
<div>
<h2 style="border-bottom: 1px solid black; font-family: arial, helvetica, ariel, sans-serif;">
Important static libcurl usage note</h2>
<p style="font-family: arial, helvetica, ariel, sans-serif; font-size: 20px;">When building an application that uses the static libcurl library on Windows, you must add <code>-DCURL_STATICLIB</code> to your <code>CFLAGS</code>. Otherwise the linker will look
 for dynamic import symbols.</p>
<br>
<br>
Cuando cosntruyes una aplicación que utiliza la librería lib Curl estática en Windows, debes añadir -DCURl_STATICLIB a tus CFLAGS. Si no el linker importará simbolos dinámicos.</div>
<div><br>
</div>
<div>He entrado en Settings/Compiler/Compiler setting/Other compiler options y he pegado <span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">-DCURl_STATICLIB
 y el error es:</span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<div><span style="color: rgb(0, 111, 201);">||=== Build: Debug in Hello Curl (compiler: GNU GCC Compiler) ===|</span></div>
<div><span style="color: rgb(0, 111, 201);">obj\Debug\main.o||In function `main':|</span></div>
<div><span style="color: rgb(0, 111, 201);">C:\Users\vaklam\Documents\hello Crul\Hello Curl\Hello Curl\main.cpp|9|undefined reference to `curl_easy_init'|</span></div>
<div><span style="color: rgb(0, 111, 201);">C:\Users\vaklam\Documents\hello Crul\Hello Curl\Hello Curl\main.cpp|11|undefined reference to `curl_easy_setopt'|</span></div>
<div><span style="color: rgb(0, 111, 201);">C:\Users\vaklam\Documents\hello Crul\Hello Curl\Hello Curl\main.cpp|13|undefined reference to `curl_easy_setopt'|</span></div>
<div><span style="color: rgb(0, 111, 201);">C:\Users\vaklam\Documents\hello Crul\Hello Curl\Hello Curl\main.cpp|16|undefined reference to `curl_easy_perform'|</span></div>
<div><span style="color: rgb(0, 111, 201);">C:\Users\vaklam\Documents\hello Crul\Hello Curl\Hello Curl\main.cpp|19|undefined reference to `curl_easy_strerror'|</span></div>
<div><span style="color: rgb(0, 111, 201);">C:\Users\vaklam\Documents\hello Crul\Hello Curl\Hello Curl\main.cpp|23|undefined reference to `curl_easy_cleanup'|</span></div>
<div><span style="color: rgb(0, 111, 201);">||error: ld returned 1 exit status|</span></div>
<div><span style="color: rgb(0, 111, 201);">||=== Build failed: 7 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|</span></div>
<div><br>
</div>
Antes de haber hecho eso, había probado a<span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"> anadir </span><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">-DCURl_STATICLIB
 en: botón secundario en el proyecto/Build options/Complier settings/Other complier options y me devolvió una lista de 50 errores,  pero no los había compiado y como no se deshacer lo que hice en <span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">Settings/Compiler/Compiler
 setting/Other compiler options pues ya no tengo esos errores.</span></span><br>
</span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><br>
</span></span></span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">Llevo
 horas con esto y la cosa ha ido evolucionando, pero me he estancado aquí y no se que más probar.</span></span></span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><br>
</span></span></span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">Gracias
 a todos de antemano.</span></span></span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><br>
</span></span></span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">Un
 saludo</span></span></span></div>
<div><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><br>
</span></span></span></div>
<div><br>
</div>
<br>
<p></p>
<p style="margin-top:0;margin-bottom:0"><span><span><br>
</span></span></p>
<p style="margin-top:0;margin-bottom:0"><span><br>
</span></p>
</div>
<div id="DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2"><br>
<table style="border-top: 1px solid #D3D4DE;">
<tbody>
<tr>
<td style="width: 55px; padding-top: 18px;"><a href="https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail" target="_blank"><img alt="" width="46" height="29" style="width: 46px; height: 29px;" src="https://ipmcdn.avast.com/images/icons/icon-envelope-tick-round-orange-animated-no-repeat-v1.gif"></a></td>
<td style="width: 470px; padding-top: 17px; color: #41424e; font-size: 13px; font-family: Arial, Helvetica, sans-serif; line-height: 18px;">
Libre de virus. <a href="https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail" target="_blank" style="color: #4453ea;">
www.avast.com</a> </td>
</tr>
</tbody>
</table>
<a href="#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2" width="1" height="1"></a></div>
</body>
</html>