Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 03.05.2019, 11:38   #11
Android1
Форумчанин
 
Регистрация: 26.08.2010
Сообщений: 114
Печаль

Запускал командною строку VS2017, там указывал эту команду:

Код:
nmake /f Makefile.vc mode=static VC=16
Поcле чего создалось три папки:
Код:
libcurl-vc16-x86-release-static-ipv6-sspi-winssl
libcurl-vc16-x86-release-static-ipv6-sspi-winssl-obj-curl
libcurl-vc16-x86-release-static-ipv6-sspi-winssl-obj-lib
После чего в С/C++ --> Общие --> дополнительные каталоги включаемых файлов --> указал путь:
Код:
C:\curl-7.64.1\builds\libcurl-vc16-x86-release-static-ipv6-sspi-winssl\include\
И Комопоновщик --> дополнительные каталоги библиотек --> указал путь:
Код:
C:\curl-7.64.1\builds\libcurl-vc16-x86-release-static-ipv6-sspi-winssl\lib
Но все равно ошибка:

Код:
LNK2019 ссылка на неразрешенный внешний символ __imp__curl_easy_init в функции _main
Подскажите пожалуйста, что я сделал не так ?
Android1 вне форума Ответить с цитированием
Старый 03.05.2019, 14:11   #12
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,228
По умолчанию

Указать путь к библиотекам не достаточно, нужно еще указать с какой библиотекой линковаться.
waleri вне форума Ответить с цитированием
Старый 03.05.2019, 19:55   #13
Android1
Форумчанин
 
Регистрация: 26.08.2010
Сообщений: 114
По умолчанию

Код:
#pragma comment(lib, "libcurl_a.lib")
Если указание на линковку библиотеки делается через погама комент, то все равно не работает, та же ошибка
Android1 вне форума Ответить с цитированием
Старый 03.05.2019, 20:28   #14
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,228
По умолчанию

Похоже компилите для динамической библиотеки (DLL) а линкуете со статической.
Обратите внимание, что путь, где лежат библиотеки, содержит "static" а функция имеет префикс __imp__.
waleri вне форума Ответить с цитированием
Старый 03.05.2019, 20:55   #15
Android1
Форумчанин
 
Регистрация: 26.08.2010
Сообщений: 114
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Похоже компилите для динамической библиотеки (DLL) а линкуете со статической.
Обратите внимание, что путь, где лежат библиотеки, содержит "static" а функция имеет префикс __imp__.
Подскажите пожалуйста , а как скомпилить для статической библиотеки ? Это в настойках VS делается ?
Android1 вне форума Ответить с цитированием
Старый 04.05.2019, 11:24   #16
Paul7
Новичок
Джуниор
 
Регистрация: 03.05.2019
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Android1 Посмотреть сообщение
Код:
#pragma comment(lib, "libcurl_a.lib")
Если указание на линковку библиотеки делается через погама комент, то все равно не работает, та же ошибка
должно быть так :
#pragma comment(lib,"libcurl.lib")

а так-же :

при компиляции со статической библиотекой curl надо добавлять определение CURL_STATICLIB в
Configuration Properties -> C/C++ -> Preprocessor -> Preprocessor Definitions

Последний раз редактировалось Paul7; 04.05.2019 в 13:49. Причина: уточнение
Paul7 вне форума Ответить с цитированием
Старый 04.05.2019, 11:27   #17
Paul7
Новичок
Джуниор
 
Регистрация: 03.05.2019
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Android1 Посмотреть сообщение
Подскажите пожалуйста , а как скомпилить для статической библиотеки ? Это в настойках VS делается ?
nmake /f Makefile.vc mode=static VC=16 RTLIBCFG=static
Paul7 вне форума Ответить с цитированием
Старый 04.05.2019, 11:32   #18
Paul7
Новичок
Джуниор
 
Регистрация: 03.05.2019
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Android1 Посмотреть сообщение
Запускал командною строку VS2017, там указывал эту команду:

Код:
nmake /f Makefile.vc mode=static VC=16
Поcле чего создалось три папки:
Код:
libcurl-vc16-x86-release-static-ipv6-sspi-winssl
libcurl-vc16-x86-release-static-ipv6-sspi-winssl-obj-curl
libcurl-vc16-x86-release-static-ipv6-sspi-winssl-obj-lib
После чего в С/C++ --> Общие --> дополнительные каталоги включаемых файлов --> указал путь:
Код:
C:\curl-7.64.1\builds\libcurl-vc16-x86-release-static-ipv6-sspi-winssl\include\
И Комопоновщик --> дополнительные каталоги библиотек --> указал путь:
Код:
C:\curl-7.64.1\builds\libcurl-vc16-x86-release-static-ipv6-sspi-winssl\lib
Но все равно ошибка:

Код:
LNK2019 ссылка на неразрешенный внешний символ __imp__curl_easy_init в функции _main
Подскажите пожалуйста, что я сделал не так ?
на крайний случай попробуй так :

#pragma warning(disable:4996)

Последний раз редактировалось Paul7; 04.05.2019 в 13:17. Причина: уточнение
Paul7 вне форума Ответить с цитированием
Старый 04.05.2019, 12:06   #19
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,103
По умолчанию

Цитата:
Сообщение от Android1 Посмотреть сообщение
Это в настойках VS делается ?
Да в настройках, MT

Цитата:
Сообщение от Paul7 Посмотреть сообщение
должно быть так
Для длл

Цитата:
Сообщение от Paul7 Посмотреть сообщение
на крайний случай попробуй так
И чем это поможет?
p51x вне форума Ответить с цитированием
Старый 04.05.2019, 16:31   #20
Paul7
Новичок
Джуниор
 
Регистрация: 03.05.2019
Сообщений: 7
По умолчанию

Построенные libcurl_a копируем в Release вашего проекта , libcurl_a_debug копируем в Debug вашего проекта .
Далее в фаиле реализации #define CURL_STATICLIB и #pragma comment(lib,"libcurl.lib") , не в коем случае не #pragma comment(lib,"libcurl_a.lib").

Последний раз редактировалось Paul7; 04.05.2019 в 16:47.
Paul7 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компиляция и привязка libcURL. FULEREN Общие вопросы C/C++ 7 07.02.2015 09:29
libcurl. Авторизация vk.com halcyon Общие вопросы C/C++ 2 25.11.2013 22:08
LIbCurl linux lazarus ВИННИ ПУX Lazarus, Free Pascal, CodeTyphon 0 10.05.2011 09:50
libcurl + HTTP = CURLE_UNSUPPORTED_PROTOCOL KOLANICH C/C++ Сетевое программирование 0 19.02.2011 11:26
libcurl.NET badgo Общие вопросы .NET 2 31.07.2010 16:33


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840