Добавление libcurl в IDE Code::Blocks в Ubuntu 14.04

У меня проблема с добавлением libcurl в блоки кода. Я установил curl на Ubuntu ($ sudo apt-get install curl), но я не знаю, как это реализовать. В настройках компоновщика я добавил файл libcurl.a. Программа (на C) не компилируется.

#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");
    /* example.com is redirected, so we tell libcurl to follow redirection */
    curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);

    /* Perform the request, res will get the return code */
    res = curl_easy_perform(curl);
    /* Check for errors */
    if(res != CURLE_OK)
      fprintf(stderr, "curl_easy_perform() failed: %s\n",
              curl_easy_strerror(res));

    /* always cleanup */
    curl_easy_cleanup(curl);
  }
  return 0;
}

Сегодня я прочитал много уроков и потратил пару часов. Ничего, поэтому я вернулся к исходной точке. Пожалуйста, помогите мне решить эту проблему.


person davoid    schedule 18.12.2014    source источник
comment
1. Вы должны сначала установить пакет libcurl-dev при разработке с помощью libcurl 2. Вы должны точно показать, что происходит, когда вы пытаетесь скомпилировать, когда вы просите о помощи, как это.   -  person Daniel Stenberg    schedule 18.12.2014
comment
Я получил огромное количество ошибок. imgur.com/admtRhf. Вот некоторые из них.   -  person davoid    schedule 18.12.2014
comment
Итак, вы выбрали ссылку со статической библиотекой, поэтому вам также нужно указать все зависимости вручную. Я предлагаю вам связать с -lcurl, чтобы использовать общую версию, которая избавит вас от многих проблем с связыванием.   -  person Daniel Stenberg    schedule 18.12.2014
comment
Не могли бы вы уточнить, что именно я должен сделать?   -  person davoid    schedule 18.12.2014
comment
Узнайте, что такое компоновка и как она работает, что такое статические и разделяемые библиотеки и чем они отличаются. Тогда вы увидите этот вопрос и ответы в совершенно другом свете.   -  person Daniel Stenberg    schedule 19.12.2014


Ответы (1)


sudo apt-get install curl устанавливает инструмент командной строки curl и общую библиотеку libcurl. Он не устанавливает файлы заголовков для разработки curl (curl.h и т. д.) и не устанавливает статическую библиотеку libcurl.a, на которую вы пытаетесь связать.

Вам будет гораздо удобнее подключиться к общей библиотеке, libcurl.so

  • В командной строке консоли запустите sudo apt-get install libcurl4-openssl-dev (чтобы установить заголовки разработки curl).
  • In the C::B IDE:
    • Remove libcurl.a from Linker settings.
    • В разделе Настройки компоновщика -> Другие параметры компоновщика введите -lcurl (указывая компоновщику связать libcurl.so) и нажмите OK.

Затем перестройте пример программы.

person Mike Kinghan    schedule 18.12.2014
comment
@davoid Не за что. Если вы считаете, что этот ответ правильный, вы можете помочь сообществу SO, отметив его принятым. См. здесь: meta.stackexchange.com/a/5235/196691. Вы также получите очки репутации за принятие ответа, как и я. - person Mike Kinghan; 19.12.2014
comment
У меня все еще есть проблема с этой библиотекой. Вот ошибка: curl/types.h: Нет такого файла или каталога. Все остальное работает нормально. Например, curl/easy.h работает нормально.| - person davoid; 22.12.2014
comment
@davoid curl/types.h устарел и был удален из пакета в 2011 году. См. решение этой ошибки: bugs.debian.org/cgi-bin/bugreport.cgi?bug=636457. Либо вам не нужен этот заголовок, либо код, который требует его, устарел. - person Mike Kinghan; 24.12.2014