导语:
- 教你科学地编译 Windows 版本的 libcurl (使用Windows SSPI或者OpenSSL)
准备工具
- CMake (3.4.0)
- Zlib (1.2.8)
- libcurl (7.45.0)
- OpenSSL (1.0.2d)
- Visual Studio 2015
目标
- 得到可以使用的 libcurl 静态库
步骤
-
编译Zlib
打开CMake,把 Zlib 目录下的 CMakeList.txt 拖进去,生成解决方案,这一步不能用 contrib\vstudio 下的 sln,里面的坑不少,尤其是低版本转高版本,生成解决方案后用VS打开,然后编译 Zlib 的静态库。
-
编译 OpenSSL (如果用 SSPI 可略过这步)
- 装一个32位的Perl
- perl Configure VC-WIN32 no-asm --prefix:安装目录
- ms\do_nasm
- nmake -f ms\nt.mak -a
- nmake -f ms\nt.mak install
-
编译 libcurl
- CMake 打开 CMakeList.txt
-
Add Entry
ZLIB_INCLUDE_DIR D:/developer/include/zlib
ZLIB_LIBRARIES D:/developer/library/zlib
OPENSSL_INCLUDE_DIR D:/developer/include
OPENSSL_LIBRARIES D:/developer/library/openssl
-
注意勾选 Advanced 否则有可能失效
- Configure时,你要么用 OpenSSL,要么用Windows SSPI,如果你用 OpenSSL,在用 CMake 生成CURL的解决方案时,要把 CURL_WINDOWS_SSPI 这个选项的给去掉(要出现这个选项,需要勾选 CMake 的 Advanced),否则会出现结构重定义的问题,如果你不使用 OpenSSL,不传 OPENSSL_INCLUDE 和 OPENSSL_LIBRARIES 进去就好,然后把CMake里那个CMAKE_USE_OPENSSL的选项给去掉,不过前提是你是在编译Windows用的libcurl。
结束
- 开启Visual Studio 2015 狂编译代码吧