2013-04-10 75 views
0

我對捲曲很新。我需要在C++中使用curl和ssl支持。 我用nmake編譯了OpenSSL,然後通過VS10項目將libcurl編譯爲一個帶有SLL SUPPORT的靜態庫。編譯工作,我試圖建立一個小的控制檯應用程序的例子:這工作!在MFC項目中包含捲曲

但是,當我嘗試創建一個具有以下特定屬性的MFC項目: MFC作爲對話框,沒有unicode,並在靜態庫中使用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__前綴到未解決的外部)。

我假設你用/MT(靜態鏈接的運行時)構建你的MFC項目。

您可以在您的構建控制檯設置RTLIBCFG環境變量static,這樣建立與靜態運行時捲曲:

set RTLIBCFG=static

或者只是手動添加/MT到編譯器標誌和/NODEFAULTLIB:MSVCRT.lib到如果第一個建議不起作用,makefile中的鏈接標誌。