libcurl依賴關係:

libcurl https://curl.haxx.se/
zlib http://www.zlib.net/
openssl https://www.openssl.org/
1、編譯zlib
debug版本的靜態編譯會有MDd MTd選項的不同
在開發Windows程序時使用zlib庫要在項目編譯選項中加入 ZLIB_WINAPI 預處理
2、編譯openssl
在openssl源碼根目錄中的 ms\\nt.mak文件中:
編譯選項注意需要手動設置zlib目錄 (/I目錄)
還有 三個編譯選項 -DASMV -DASMINF -DZLIB_WINAPI
CFLAG= /IG:\\libcurl\\zlib\\include -DASMV -DASMINF -DZLIB_WINAPI /MTd......
加入不適用默認庫/NODEFAULTLIB:MSVCRTD.lib
LFLAGS=/NODEFAULTLIB:MSVCRTD.lib /nologo /subsystem:console /opt:ref /debug
RSC=rc
3、編譯libcurl
在libcurl源碼根目錄中的 winbuild\\MakefielBuild.vc中:
要加入選項 ZLIB_WINAPI
!IFDEF USE_ZLIB
ZLIB_CFLAGS = /DHAVE_ZLIB_H /DHAVE_ZLIB /DHAVE_LIBZ /DZLIB_WINAPI
!ENDIF
4、使用libcurl庫開發其他程序
為了正常靜態編譯
需要在預處理器中加入 CURL_STATICLIB
為了編譯鏈接正確
需要加入
#pragma comment(lib, "curl/lib/libcurl_a_debug.lib")
#pragma comment(linker,"/NODEFAULTLIB:LIBCMTD.lib")
閱讀更多 攻防基地 的文章