2010-10-01 166 views
7

真的很愚蠢的C問題。找不到捲曲符號

我想在這裏建立的源代碼,這樣我就可以修改它爲自己

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

我下載的文件啓動,那麼運行

gcc -o test ftpget.c 

,並得到

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 

這對我沒有意義,因爲

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

存在並具有這些功能。我相信這是我錯過的一些基本的編譯工具。

非常感謝任何指針。

回答

18

您需要使用curl庫鏈接:

 
gcc -o test ftpget.c -lcurl 
+1

你能解釋取悅爲什麼鏈接到lcurl需要在這種情況下? – Ritesh 2014-10-03 15:22:29

+1

我該怎麼做? – 2015-05-30 09:05:46

+0

@Ritesh''curl.h'在'pre-processing'時間被包含,您的編譯器只抓取頭文件中的聲明,但沒有定義。如果你沒有鏈接這些庫(大部分是包含那個庫中定義的二進制對象),你將會收到編譯器提供的'undefined symbols'錯誤。 – 2017-10-12 20:16:42