Форум программистов, компьютерный форум CyberForum.ru

Как правильно подключить curl библиотеку? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
Limb0
 Аватар для Limb0
19 / 19 / 0
Регистрация: 22.01.2012
Сообщений: 88
05.10.2013, 19:22     Как правильно подключить curl библиотеку? #1
Здравствуйте, я хотел в своем проекте использовать библиотеку curl, для этого я:
1. Скачал архив з оф. сайта.
2. Затем по инструкции в архиве, используя nmake скомпилировал исходники, после этого создалось 3 папки. В одной были заголовочные и объектные файли. В остальных только объектные файлы.
3. Заголовочные файлы я скопировал в папку C:\Program Files\Microsoft Visual Studio 11.0\VC\include\curl
а объектные файлы в C:\Program Files\Microsoft Visual Studio 11.0\VC\lib
4. Потом я создал консольное приложение с исходным кодом взятым с оф. сайта
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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;
}
Но у меня не получается скомпилировать это, так как появляються такие ошибки:
Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ __imp__curl_easy_strerror в функции _main D:\C++\Drop\e\e\e.obj e
Ошибка 2 error LNK2019: ссылка на неразрешенный внешний символ __imp__curl_easy_init в функции _main D:\C++\Drop\e\e\e.obj e
Что нужно сделать чтоб избавиться от ошибок?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2013, 19:22     Как правильно подключить curl библиотеку?
Посмотрите здесь:

C++ как подключить библиотеку
А как подключить библиотеку в c++ ? C++
Как правильно подключить набор сертификатов в curl? C++
C++ Как подключить библиотеку
C++ Как подключить библиотеку?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.10.2013, 20:16     Как правильно подключить curl библиотеку? #2
Компоновщик - ввод - дополнительные зависимости: напишите здесь названия lib файлов, функции из которых используются в коде.
Limb0
 Аватар для Limb0
19 / 19 / 0
Регистрация: 22.01.2012
Сообщений: 88
05.10.2013, 20:32  [ТС]     Как правильно подключить curl библиотеку? #3
Если компилировать исходный код с помощью nmake в режиме dll и при записи libcurl.lib в настройках компоновщика тогда работает, но когда я вибираю статический режим mode=static тогда у меня создается не libcurl.lib а libcurl_a.lib и при его подключении всеравно появляются те самые ошибки.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.10.2013, 20:54     Как правильно подключить curl библиотеку? #4
Есть уже собранные библиотеки.
Цитата Сообщение от Limb0 Посмотреть сообщение
тогда у меня создается не libcurl.lib а libcurl_a.lib и при его подключении всеравно появляются те самые ошибки.
Какую, при этом, библиотеку времени выполнения выбираете? С++ - Создание кода - Библиотека времени выполнения.
Limb0
 Аватар для Limb0
19 / 19 / 0
Регистрация: 22.01.2012
Сообщений: 88
05.10.2013, 21:19  [ТС]     Как правильно подключить curl библиотеку? #5
Сейчас перепробывал все варианты библиотек времени выполнения, но не помогает.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.10.2013, 21:33     Как правильно подключить curl библиотеку? #6
Вам именно статическая библиотека нужна?

Добавлено через 4 минуты
В готовой сборке есть такая: curllib_static.lib
Avazart
 Аватар для Avazart
6906 / 5146 / 253
Регистрация: 10.12.2010
Сообщений: 22,639
Записей в блоге: 17
05.10.2013, 21:45     Как правильно подключить curl библиотеку? #7
Limb0,
C++
1
#pragma comment(lib,"curllib.lib")
http://www.cyberforum.ru/blogs/131347/blog1151.html

Цитата Сообщение от Limb0 Посмотреть сообщение
Если компилировать исходный код с помощью nmake в режиме dll и при записи libcurl.lib в настройках компоновщика тогда работает, но когда я вибираю статический режим mode=static тогда у меня создается не libcurl.lib а libcurl_a.lib и при его подключении всеравно появляются те самые ошибки.
Необязательно собирать самому библиотеку из исходников, ее можно скачать уже собранную.
Главное подключить *.lib, и если это динамическая сборка положить рядом с exe программы dll-ку от curl
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.10.2013, 21:47     Как правильно подключить curl библиотеку? #8
Хотя, сейчас попробовал, с curllib_static.lib не хочет компилировать.

Добавлено через 1 минуту
Avazart, почему с curllib_static.lib не хочет компилировать?
Avazart
 Аватар для Avazart
6906 / 5146 / 253
Регистрация: 10.12.2010
Сообщений: 22,639
Записей в блоге: 17
05.10.2013, 21:59     Как правильно подключить curl библиотеку? #9
Цитата Сообщение от alsav22 Посмотреть сообщение
Avazart, почему с curllib_static.lib не хочет компилировать?
Ну статические могут не компилиться из-за различий версий компиляторов.

А что пишет ?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.10.2013, 22:01     Как правильно подключить curl библиотеку? #10
Цитата Сообщение от Avazart Посмотреть сообщение
А что пишет ?
То, что в первом посте. Вот это ещё нужно добавить, тогда компилируется: libcurl_imp.lib.
Limb0
 Аватар для Limb0
19 / 19 / 0
Регистрация: 22.01.2012
Сообщений: 88
05.10.2013, 22:38  [ТС]     Как правильно подключить curl библиотеку? #11
А откуда взять этот файл
Цитата Сообщение от alsav22 Посмотреть сообщение
libcurl_imp.lib.
При компилировании исходников там этого файла нет, в скомплированых пакетах http://curl.haxx.se/download/libcurl...win32-msvc.zip его я также не нахожу.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.10.2013, 22:49     Как правильно подключить curl библиотеку? #12
Цитата Сообщение от Limb0 Посмотреть сообщение
А откуда взять этот файл
У меня он в основной папке: ibcurl-7.19.3-win32-ssl-msvc.

Добавлено через 2 минуты
По ссылке не тот пакет, который нужен.

Добавлено через 1 минуту
Зачем вам эта статическая библиотека? Всё равно без dll работать не будет.
Limb0
 Аватар для Limb0
19 / 19 / 0
Регистрация: 22.01.2012
Сообщений: 88
05.10.2013, 23:02  [ТС]     Как правильно подключить curl библиотеку? #13
Так я думал что тогда программа будет работать без dll
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.10.2013, 23:34     Как правильно подключить curl библиотеку? #14
Цитата Сообщение от Limb0 Посмотреть сообщение
Так я думал что тогда программа будет работать без dll
Я тоже так думал, но в реальности получается не так (только присутствия lib не требуется). Честно говоря, у меня знаний на эту тему мало. Avazart, что скажете о работе curl без dll?
Avazart
 Аватар для Avazart
6906 / 5146 / 253
Регистрация: 10.12.2010
Сообщений: 22,639
Записей в блоге: 17
06.10.2013, 01:14     Как правильно подключить curl библиотеку? #15
Цитата Сообщение от alsav22 Посмотреть сообщение
Зачем вам эта статическая библиотека? Всё равно без dll работать не будет.
Вы путаете статический *.lib файл и *.lib для импорта из *.dll
Статический это - объектный файл файл, там dll не нужна будет так как он "включится" в исполняемый файл при сборке.

Добавлено через 1 минуту
Цитата Сообщение от alsav22 Посмотреть сообщение
Avazart, что скажете о работе curl без dll?
Честно говоря не пробовал, надо будет по пробовать.
Использовал в С++Builder, а для него нет статического *.lib
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.10.2013, 01:28     Как правильно подключить curl библиотеку? #16
Цитата Сообщение от Avazart Посмотреть сообщение
Вы путаете статический *.lib файл и *.lib для импорта из *.dll
Я не мойму, что там что, но просто практически попробовал собрать этот код со статической линковкой (в студии), используя curllib_static.lib. Без dll всё равно не работает. Единственно что, не требует присутствия curllib.lib рядом с .exe.
Avazart
 Аватар для Avazart
6906 / 5146 / 253
Регистрация: 10.12.2010
Сообщений: 22,639
Записей в блоге: 17
06.10.2013, 01:38     Как правильно подключить curl библиотеку? #17
Цитата Сообщение от alsav22 Посмотреть сообщение
не требует присутствия curllib.lib рядом с .exe.
Он и так в любом случае не требует.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2013, 01:50     Как правильно подключить curl библиотеку?
Еще ссылки по теме:

Как правильно подключить библиотеку SDL C++
C++ Как подключить библиотеку к проекту
C++ Как подключить CURL?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.10.2013, 01:50     Как правильно подключить curl библиотеку? #18
Цитата Сообщение от Avazart Посмотреть сообщение
Он и так в любом случае не требует.
Может что и спутал, в процессе тыканья... Сейчас попробовал - не требует.
Yandex
Объявления
06.10.2013, 01:50     Как правильно подключить curl библиотеку?
Ответ Создать тему
Опции темы

Текущее время: 01:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru