2013-04-10 3 views
0

Я довольно новый с завитом. Мне нужно использовать curl в C++ с поддержкой ssl. Я скомпилировал OpenSSL с nmake и затем скомпилировал libcurl как статическую библиотеку с поддержкой SLL через проект VS10. Компиляция работала, и я попытался создать пример небольшого консольного приложения: это работает!Включить завиток в проект MFC

Но, когда я пытаюсь создать проект 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 

Спасибо заранее.

ответ

0

По умолчанию локон компилирует с /MD (DLL) библиотека времени выполнения (именно поэтому вы получаете префикс __imp__ к нерешенным внешним).

Я предполагаю, что вы построите проект MFC с помощью /MT (статически связанное время выполнения).

Вы можете построить локон со статическим во время выполнения, установив переменную RTLIBCFG среды в консоли сборки в static, как это:

set RTLIBCFG=static

Или просто добавьте вручную /MT к флагам компилятора и /NODEFAULTLIB:MSVCRT.lib в флаги ссылок в make-файлах, если первое предложение не работает.