【发布时间】:2021-03-07 11:27:07
【问题描述】:
#include <curl/curl.h>
int main()
{
CURL* curl = curl_easy_init();
curl_easy_setopt(curl, CURLOPT_URL, "https://www.example.com")
return 0;
}
编译时:
gcc foo.c -lcurl
如果不包含 curl 库,为什么会返回此错误?:
/usr/bin/ld: /tmp/cclp7KeN.o: in function `main':
foo.c:(.text+0x157): undefined reference to `curl_easy_init'
/usr/bin/ld: foo.c:(.text+0x17f): undefined reference to `curl_easy_setopt'
collect2: error: ld returned 1 exit status
提前致谢。
【问题讨论】:
-
完成工作(卷曲、打印、扫描、数学等)所需的代码不是由核心语言编写或指定的。该代码由编译器编写者(更准确地说:库编写者)编写。他们编写代码、编译代码并将输出(处理器/操作系统的可执行指令)添加到库中。然后,您必须包含该特定库才能创建具有所需功能的可执行文件。添加
#include ...只是文本,只是告诉编译器如何与库中已有的代码交互的信息。默认情况下,libc会自动包含在内。