2010-10-01 122 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