Я довольно новый с curl. Мне нужно использовать curl в C ++ с поддержкой ssl.
Я скомпилировал OpenSSL с помощью nmake, а затем скомпилировал libcurl как статическую библиотеку с поддержкой SLL через проект VS10. Компиляция сработала, и я попытался создать небольшой пример консольного приложения: это работает!
Но когда я пытаюсь создать проект MFC со следующими конкретными свойствами:
MFC как диалоговое окно, без юникода и с использованием MFC в статической библиотеке.
Это не работает, и я получил следующие неразрешенные ошибки символов:
libcurl.lib(mprintf.obj) : error LNK2001: symbole externe non résolu __imp__fputc
1>libcurl.lib(tftp.obj) : error LNK2001: symbole externe non résolu __imp__memchr
1>libcurl.lib(http.obj) : error LNK2001: symbole externe non résolu __imp__memchr
1>libcurl.lib(userauth.obj) : error LNK2001: symbole externe non résolu __imp__memchr
1>libcurl.lib(file.obj) : error LNK2001: symbole externe non résolu __imp___fstat64
1>libcurl.lib(formdata.obj) : error LNK2001: symbole externe non résolu __imp___stat64
1>libcurl.lib(session.obj) : error LNK2001: symbole externe non résolu __imp___difftime64
1>libcurl.lib(kex.obj) : error LNK2001: symbole externe non résolu __imp___snprintf
1>libcurl.lib(knownhost.obj) : error LNK2001: symbole externe non résolu __imp___snprintf
1>libcurl.lib(scp.obj) : error LNK2001: symbole externe non résolu __imp___snprintf
1>libcurl.lib(misc.obj) : error LNK2001: symbole externe non résolu __imp___snprintf
1>libcurl.lib(transport.obj) : error LNK2001: symbole externe non résolu _imp___snprintf
1>libcurl.lib(channel.obj) : error LNK2001: symbole externe non résolu __imp___wassert
1>libcurl.lib(sftp.obj) : error LNK2001: symbole externe non résolu __imp___wassert
1>libcurl.lib(transport.obj) : error LNK2001: symbole externe non résolu __imp___wassert
1>libcurl.lib(userauth.obj) : error LNK2001: symbole externe non résolu __imp__rewind
1>libcurl.lib(misc.obj) : error LNK2001: symbole externe non résolu __imp__vsnprintf
Заранее спасибо.
Проверь это: http://theetrain.ca/tech/?p=151
Вы, вероятно, забыли добавить дополнительные зависимости для библиотеки curl
По умолчанию curl компилируется с /MD
(DLL) библиотека времени выполнения (вот почему вы получаете __imp__
Приставка к неразрешенным внешним связям).
Я предполагаю, что вы строите свой проект MFC с /MT
(статически связанное время выполнения).
Вы можете создать curl со статическим временем выполнения, установив RTLIBCFG
переменная окружения в консоли сборки для static
, как это:
set RTLIBCFG=static
Или просто добавьте вручную /MT
на флаги компилятора и /NODEFAULTLIB:MSVCRT.lib
на флаги ссылки в make-файлах, если первое предложение не работает.