Error al compilar C con liberia curl

bornex

Hola a todos, os pongo aquí el post para que me echéis una mano. Quiero probar la libreria curl en un ejemplo de C que te lo dan en la web de la librería curl:

#include <stdio.h>
#include <curl-7.30.0/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");
    /* example.com is redirected, so we tell libcurl to follow redirection */ 
    curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
 
/* Perform the request, res will get the return code */ 
res = curl_easy_perform(curl);
/* Check for errors */ 
if(res != CURLE_OK)
  fprintf(stderr, "curl_easy_perform() failed: %s\n",
          curl_easy_strerror(res));
 
/* always cleanup */ 
curl_easy_cleanup(curl);
  }
  return 0;
}

Me he bajado la librería y la he movido a /usr/include y cuando voy a compilar:

gcc -o url url.c

Me sale el siguiente error:

/tmp/ccET4OVC.o: In function `main':
url.c:(.text+0x82): undefined reference to `curl_easy_init'
url.c:(.text+0xb5): undefined reference to `curl_easy_setopt'
url.c:(.text+0xd9): undefined reference to `curl_easy_setopt'
url.c:(.text+0xe5): undefined reference to `curl_easy_perform'
url.c:(.text+0xfc): undefined reference to `curl_easy_strerror'
url.c:(.text+0x123): undefined reference to `curl_easy_cleanup'
collect2: ld devolvió el estado de salida 1

... y no me compila. Seguramente este haciendo algo mal con el tema del include y de la librería, por eso vengo aquí a ver si me lo aclaráis y podéis solucionar el fallo, me sería de gran ayuda.

Un saludo.

B

te falta linkear la libreria -lcurl

1 1 respuesta
bornex

#2 Gracias por responder, ¿como hago lo de linkear la librería?

B

gcc -o url url.c -lcurl

1 respuesta
bornex

#4 Hago:

gcc -o url url.c -lcurl 

y me sale:

/usr/bin/ld: cannot find -lcurl
collect2: ld devolvió el estado de salida 1
1 respuesta
B

#5 te falta el paquete dev de libcurl, búscalo e instalalo con apt y yum según distro.

1 respuesta
bornex

#6 Ok, gracias.

Solucionado con:

apt-get install libcurl4-gnutls-dev

y

apt-get install libcurl4-openssl-dev
1

Usuarios habituales