2017-09-15 5 views
0

J'essaye de compiler ce code dans Codeblocks 16.01 sous Ubuntu mais il renvoie un message d'erreur avec référence non définie à 'curl_easy_init'. Mais quand je cours dans le terminal gcc -L/usr/lib/x86_64-linux-gnu main.c -o curl -lcurl ne renvoie aucune erreur.Impossible de compiler libcurl avec Codeblocks IDE dans Ubuntu

Comment puis-je résoudre ce problème?

#include <stdio.h> 
#include <curl/curl.h> 

void fileUpload() 
{ 
    CURL *curl; 
    CURLcode res; 

    curl = curl_easy_init(); 
    if(curl) { 
     curl_easy_setopt(curl, CURLOPT_URL,"http://test1:[email protected]/geoserver/rest/layers.xml"); 
     /* 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)); 

     FILE* file = fopen("layers.txt", "w"); 

     curl_easy_setopt(curl, CURLOPT_WRITEDATA, file) ; 

     /* 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); 

     fclose(file); 
    } 
} 


int main() { 

    //Call to the method that charge the url content to a file with all the layers. 
    fileUpload(); 
    return 0; 
} 

Répondre

0

Je pense que vous avez oublié de dire codeblocks faire le lien avec libcurl:

  • options de construction ...
  • Linker paramètres
  • Ajouter (bouton)
  • Entrez curl

Voir dans imag es ici: https://stackoverflow.com/a/5881751/1212012

+0

Merci, enfin je le fais fonctionner en ajoutant -lcurl sur Linker Setting -> Autres options de Linker – Ryon94