在 Windows 上使用 Visual Studio 编译 CURL

导语:

  • 教你科学地编译 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 可略过这步)

    1. 装一个32位的Perl
    2. perl Configure VC-WIN32 no-asm --prefix:安装目录
    3. ms\do_nasm
    4. nmake -f ms\nt.mak -a
    5. nmake -f ms\nt.mak install
  • 编译 libcurl

    1. CMake 打开 CMakeList.txt
    2. 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

    3. 注意勾选 Advanced 否则有可能失效

    4. 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 狂编译代码吧
上一篇:wordpress如何防止发布文章时候自动清除


换行标签


下一篇:为什么Linux安全 基于它的安卓不安全呢?