「编程」 Libcurl编译教程

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")