2010-10-01 3 views
7

Wirklich dumm C Frage.lib curl symbol nicht gefunden

Ich versuche, den Quellcode hier zu bauen, so dass ich es auf Modifizierung für mich

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

ich die Datei herunterladen starten, dann

gcc -o test ftpget.c 

laufen und bekommen

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 

was macht für mich keinen Sinn, weil

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

existiert und hat diese Funktionen. Ich bin mir sicher, dass dies eine grundlegende c-Kompilation ist, die ich vermisse.

Vielen Dank für alle Hinweise.

Antwort

18

Sie müssen sich mit der curl-Bibliothek verknüpfen:

 
gcc -o test ftpget.c -lcurl 
+1

Können Sie erklären, bitte, warum zu lcurl Verknüpfung in diesem Fall benötigt wird? – Ritesh

+1

Wie mache ich das? –

+0

@Ritesh 'curl.h' ist während der Vorverarbeitungszeit eingeschlossen, wobei Ihr Compiler nur die Deklaration in der Header-Datei übernimmt, aber keine Definitionen. Wenn Sie die Bibliotheken nicht verknüpfen (meist das binäre Objekt, das Definitionen in dieser Bibliothek enthält), erhalten Sie den Fehler "undefined symbols" von Ihrem Compiler. –