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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
Limb0
19 / 19 / 0
Регистрация: 22.01.2012
Сообщений: 88
#1

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

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

Здравствуйте, я хотел в своем проекте использовать библиотеку 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2013, 19:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как правильно подключить curl библиотеку? (C++):

Как правильно подключить набор сертификатов в curl? - C++
Здравствуйте, есть следующий код: #include <stdio.h> #include <curl/curl.h> #include <string> int main(void) { CURL *curl;...

Как правильно подключить библиотеку SDL - C++
Здравствуйте, подскажите, пожалуйста, как правильно подключить библиотеку SDL. Я пользуюсь компилятором Code::Blocks. При подключении...

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

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

Как подключить библиотеку? - C++
Скачал c boost.org архив с библиотекой boost скинул в папку @C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\\lib\boost@ пытаюсь...

Как подключить библиотеку? - C++
Здравствуйте! Меня интересует: 1. Как именно подключаются библиотеки к с++ (vs 2017)? 2. Где их удобнее всего искать на просторах...

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

Добавлено через 4 минуты
В готовой сборке есть такая: curllib_static.lib
0
Avazart
Нарушитель
Эксперт С++
7232 / 5404 / 293
Регистрация: 10.12.2010
Сообщений: 23,951
Записей в блоге: 17
05.10.2013, 21:45 #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
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.10.2013, 21:47 #8
Хотя, сейчас попробовал, с curllib_static.lib не хочет компилировать.

Добавлено через 1 минуту
Avazart, почему с curllib_static.lib не хочет компилировать?
0
Avazart
Нарушитель
Эксперт С++
7232 / 5404 / 293
Регистрация: 10.12.2010
Сообщений: 23,951
Записей в блоге: 17
05.10.2013, 21:59 #9
Цитата Сообщение от alsav22 Посмотреть сообщение
Avazart, почему с curllib_static.lib не хочет компилировать?
Ну статические могут не компилиться из-за различий версий компиляторов.

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

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

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

Добавлено через 1 минуту
Цитата Сообщение от alsav22 Посмотреть сообщение
Avazart, что скажете о работе curl без dll?
Честно говоря не пробовал, надо будет по пробовать.
Использовал в С++Builder, а для него нет статического *.lib
0
06.10.2013, 01:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2013, 01:14
Привет! Вот еще темы с ответами:

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

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

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

А как подключить библиотеку в c++ ? - C++
А как подключить библиотеку в c++ ? К примеру для музыки или видео... :wall:


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru