2010-10-01 4 views
7

Vraiment stupide C question.lib curl symbole pas trouvé

Je suis en train de construire le code source ici pour que je puisse commencer à le modifier pour moi

http://curl.haxx.se/libcurl/c/ftpget.html

je télécharger le fichier, puis exécutez

gcc -o test ftpget.c 

et obtenir

Undefined symbols: 
    "_curl_global_init", referenced from: 
     _main in ccFchguB.o 
    "_curl_easy_perform", referenced from: 
     _main in ccFchguB.o 
    "_curl_easy_setopt", referenced from: 
     _main in ccFchguB.o 
     _main in ccFchguB.o 
     _main in ccFchguB.o 
     _main in ccFchguB.o 
    "_curl_easy_cleanup", referenced from: 
     _main in ccFchguB.o 
    "_curl_easy_init", referenced from: 
     _main in ccFchguB.o 
    "_curl_global_cleanup", referenced from: 
     _main in ccFchguB.o 
ld: symbol(s) not found 
collect2: ld returned 1 exit status 

ce qui n'a aucun sens pour moi, parce que

/usr/local/include/curl/curl.h 

existe et a ces fonctions. Je suis sûr que c'est une compilation de base qui me manque.

Un grand merci pour les pointeurs.

Répondre

18

Vous devez créer un lien avec la bibliothèque boucle:

 
gcc -o test ftpget.c -lcurl 
+1

Pouvez-vous expliquer pourquoi il vous plaît que liant à lcurl est nécessaire dans ce cas? – Ritesh

+1

comment je fais ça? –

+0

@Ritesh 'curl.h' est inclus pendant le temps de' pré-traitement', que votre compilateur n'attrape que la déclaration dans le fichier d'en-tête, mais pas de définitions. Si vous ne liez pas les bibliothèques (principalement l'objet binaire qui contient des définitions dans cette bibliothèque), vous recevrez l'erreur 'undefined symbols' de votre compilateur. –

Questions connexes