2010-10-01 14 views
7

Domanda davvero stupida.simbolo lib curl non trovato

Sto cercando di costruire il codice sorgente qui in modo da poter iniziare la modifica per me

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

ho scaricato il file, quindi eseguire

gcc -o test ftpget.c 

e ottenere

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 

che non ha senso per me, perché

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

esiste ed ha queste funzioni. Sono sicuro che questa è una cosa di base della compilation c che mi manca.

Molte grazie per qualsiasi suggerimento.

risposta

18

Devi collegare con la libreria ricciolo:

 
gcc -o test ftpget.c -lcurl 
+1

può spiegare per favore che il motivo per cui il collegamento a lcurl è necessario in questo caso? – Ritesh

+1

come faccio? –

+0

@Ritesh 'curl.h' è incluso durante il tempo di 'pre-elaborazione', che il compilatore cattura solo la dichiarazione nel file di intestazione, ma senza definizioni. Se non colleghi le librerie (principalmente l'oggetto binario che contiene definizioni in quella libreria), riceverai l'errore 'simboli non definiti 'dal tuo compilatore. –

Problemi correlati