Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Linux计算机上安装cURL时出错_Linux_Curl - Fatal编程技术网

在Linux计算机上安装cURL时出错

在Linux计算机上安装cURL时出错,linux,curl,Linux,Curl,忽略这整件事,留待上下文讨论,请参见最后的问题 这是我让自己陷入的一个相当奇怪的境地。我安装了,除了代码本身,所有的东西都正常工作。如果我尝试 man curl_easy_init 此时会出现该函数的手册页。我试着 curl -V 及 出现,这意味着我安装正确。我甚至访问了/usr/include,curl/curl.h文件就在那里。现在当我尝试一个非常简单的程序时 #include <stdio.h> #include <curl/curl.h> int main

忽略这整件事,留待上下文讨论,请参见最后的问题

这是我让自己陷入的一个相当奇怪的境地。我安装了,除了代码本身,所有的东西都正常工作。如果我尝试

man curl_easy_init
此时会出现该函数的手册页。我试着

curl -V

出现,这意味着我安装正确。我甚至访问了/usr/include,curl/curl.h文件就在那里。现在当我尝试一个非常简单的程序时

#include <stdio.h>
#include <curl/curl.h>

int main(void)
{
  CURL * curl;
  CURLcode res;

  curl = curl_easy_init();
  if(curl)
  {
    curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
    res = curl_easy_perform(curl);
    curl_easy_cleanup(curl);
  }
  return 0;
}
即使我可以对这些函数中的任何一个执行手册页请求,它也无法正确地找到它们。这意味着curl.h文件没有正确链接,或者类似的东西。我在安装curl库时搞砸了多少

编辑:找到答案,新问题

在我花时间把这些都写出来之后,我发现了一个类似的问题,答案是“include-lcurl”,我的程序也在编译。当我已经包含头文件curl/curl.h时,为什么有必要这样做

当我已经包含头文件curl/curl.h时,为什么有必要这样做

头文件
curl.h
告诉编译器curl库中函数的原型和其他信息,并且
-lcurl
告诉链接器在哪里查找这些函数的定义

#include <stdio.h>
#include <curl/curl.h>

int main(void)
{
  CURL * curl;
  CURLcode res;

  curl = curl_easy_init();
  if(curl)
  {
    curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
    res = curl_easy_perform(curl);
    curl_easy_cleanup(curl);
  }
  return 0;
}
gcc -Wall test.c
test.c: In function ‘main’:
 test.c:7:12: warning: variable ‘res’ set but not used [-Wunused-but-set-variable]
/tmp/ccT4IJ5R.o: In function `main':
test.c:(.text+0x99): undefined reference to `curl_easy_init'
test.c:(.text+0xc6): undefined reference to `curl_easy_setopt'
test.c:(.text+0xd2): undefined reference to `curl_easy_perform'
test.c:(.text+0xe1): undefined reference to `curl_easy_cleanup'
collect2: ld returned 1 exit status