Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/34: Рейтинг темы: голосов - 34, средняя оценка - 4.79
20 / 20 / 0
Регистрация: 22.01.2012
Сообщений: 88
1

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

05.10.2013, 19:22. Показов 6231. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, я хотел в своем проекте использовать библиотеку 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
Что нужно сделать чтоб избавиться от ошибок?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.10.2013, 19:22
Ответы с готовыми решениями:

Как правильно подключить набор сертификатов в curl?
Здравствуйте, есть следующий код: #include <stdio.h> #include <curl/curl.h> #include <string> ...

Как правильно подключить библиотеку SDL
Здравствуйте, подскажите, пожалуйста, как правильно подключить библиотеку SDL. Я пользуюсь...

Как правильно подключить данную библиотеку ?
Доброго времени суток подскажите пожалуйста как правильно подключить данную библиотеку в...

Как правильно подключить свою библиотеку?
Здравствуйте всем. Я использую Visual Studio. В одном решении у меня находится проект библиотеки...

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

Добавлено через 4 минуты
В готовой сборке есть такая: curllib_static.lib
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
05.10.2013, 21:45 7
Limb0,
C++
1
#pragma comment(lib,"curllib.lib")
https://www.cyberforum.ru/blog... g1151.html

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

Добавлено через 1 минуту
Avazart, почему с curllib_static.lib не хочет компилировать?
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
05.10.2013, 21:59 9
Цитата Сообщение от alsav22 Посмотреть сообщение
Avazart, почему с curllib_static.lib не хочет компилировать?
Ну статические могут не компилиться из-за различий версий компиляторов.

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

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

Добавлено через 1 минуту
Зачем вам эта статическая библиотека? Всё равно без dll работать не будет.
0
20 / 20 / 0
Регистрация: 22.01.2012
Сообщений: 88
05.10.2013, 23:02  [ТС] 13
Так я думал что тогда программа будет работать без dll
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
05.10.2013, 23:34 14
Цитата Сообщение от Limb0 Посмотреть сообщение
Так я думал что тогда программа будет работать без dll
Я тоже так думал, но в реальности получается не так (только присутствия lib не требуется). Честно говоря, у меня знаний на эту тему мало. Avazart, что скажете о работе curl без dll?
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
06.10.2013, 01:14 15
Цитата Сообщение от alsav22 Посмотреть сообщение
Зачем вам эта статическая библиотека? Всё равно без dll работать не будет.
Вы путаете статический *.lib файл и *.lib для импорта из *.dll
Статический это - объектный файл файл, там dll не нужна будет так как он "включится" в исполняемый файл при сборке.

Добавлено через 1 минуту
Цитата Сообщение от alsav22 Посмотреть сообщение
Avazart, что скажете о работе curl без dll?
Честно говоря не пробовал, надо будет по пробовать.
Использовал в С++Builder, а для него нет статического *.lib
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
06.10.2013, 01:28 16
Цитата Сообщение от Avazart Посмотреть сообщение
Вы путаете статический *.lib файл и *.lib для импорта из *.dll
Я не мойму, что там что, но просто практически попробовал собрать этот код со статической линковкой (в студии), используя curllib_static.lib. Без dll всё равно не работает. Единственно что, не требует присутствия curllib.lib рядом с .exe.
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
06.10.2013, 01:38 17
Цитата Сообщение от alsav22 Посмотреть сообщение
не требует присутствия curllib.lib рядом с .exe.
Он и так в любом случае не требует.
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
06.10.2013, 01:50 18
Цитата Сообщение от Avazart Посмотреть сообщение
Он и так в любом случае не требует.
Может что и спутал, в процессе тыканья... Сейчас попробовал - не требует.
0
06.10.2013, 01:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.10.2013, 01:50
Помогаю со студенческими работами здесь

Как подключить CURL?
Как подключить CURL к MSVS? У меня ступор, начиная от того какой архив качать

Как подключить библиотеку
Привет всем. Возникла проблема с подключением библиотек. Смотрел в интернете, но ответа не нашёл....

Как подключить библиотеку
Opengl. Вроде все по инструкции скачал и раскидал по папкам. Если не ошибаюсь мне осталось что-то...

Как подключить библиотеку в Qt
Вообщем делаю курчас,в QT.Мне нужен был класс матриц я его нашел http://cppstudio.com/post/4946/,но...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru