libcurl + libssh2 + openssl + zlib windows 编译要点

环境:win10,vs2005,curl-7.62.0,libssh2-1.8.0,openssl-1.0.2q,zlib-1.2.11

基础配置:系统path环境变量增加


..\Microsoft Visual Studio 8\VC\bin

..\Microsoft Visual Studio 8\VC\Common7\IDE

..\Microsoft Visual Studio 8\VC\include

..\Microsoft Visual Studio 8\VC\PlatformSDK\Include

..\Microsoft Visual Studio 8\VC\lib

..\Microsoft Visual Studio 8\VC\PlatformSDK\Lib

..\NASM

命令环境:..\Microsoft Visual Studio 8\VC\bin,执行vcvars32.bat

一、编译ZLIB

  1. 进入zlib-1.2.11\contrib\masmx86,执行bld_ml32.bat,生成同目录下OBJ

  2. 复制OBJ到zlib-1.2.11\根目录,执行nmake -f win32/Makefile.msc(根据实际情况修改文件MT或MD编译参数)

  3. 建目标DLL目录,用于LIBCURL编译

zlib-dll\bin存放zlib1.dll

zlib-dll\include存放zconf.h,zlib.h

zlib-dll\lib存放zdll.lib(动态库导入),zlib.lib (静态库)

二、编译openssl

  1. 下载安装ActivePerl,Nasm汇编器

  2. 进入openssl-1.0.2q\根目录,执行perl Configure VC-WIN32 --prefix=openssl-dll

  3. 执行ms\do_nasm

  4. 执行nmake -f ms\ntdll.mak 编译结果在out32dll文件夹内,如果编译静态库执行nmake -f ms\nt.mak(根据实际情况修改文件MT或MD编译参数)

  5. 执行nmake -f ms\ntdll.mak test 检查结果,提示pass为正常,如果编译静态库执行nmake -f ms\nt.mak test

  6. 执行nmake -f ms\ntdll.mak install 将结果out32dll内容复制到步骤2中的目录内并安装,如果编译静态库执行nmake -f ms\nt.mak install

  7. 步骤2中openssl-dll为目录DLL目录,用于LIBCURL编译

三、编译libssh2

  1. 进入libssh2-1.8.0\win32,修改config.mk,修改zlib目录及openssl目录为前述编译结果目录

  2. 编译

  • 第一种编译方法:进入libssh2-1.8.0\根目录,执行nmake -f NMakefile,此编译生成DLL,无libssh2.lib

  • 第二种编译方法:用VS打开libssh2-1.8.0\win32\libssh2.dsp,将zlib,openssl编译结果include及lib目录加入当前项目C++环境内(根据实际情况修改文件MT或MD编译参数)

  1. 建目标DLL目录,用于LIBCURL编译

libssh2-dll\bin存放libssh2.dll

libssh2-dll\include存放libssh2.h,libssh2_publickey.h,libssh2_sftp.h

libssh2-dll\lib存放libssh2.lib

四、编译libcurl

  1. 依据下列目录存放前三步编译结果

   somedirectory\

    |_curl-src

    | |_winbuild

    |

    |_deps

      |_ lib

      |_ include

      |_ bin

  1. 进入curl-7.62.0\winbuild目录

  2. 编译

  • 动态库编译命令:
    nmake /f Makefile.vc mode=dll VC=8 SSL_PATH=D:\libcurl\OpenSSL-dll ZLIB_PATH=D:\libcurl\zlib-dll SSH2_PATH=D:\libcurl\libssh2-dll ENABLE_IDN=no DEBUG=no WITH_SSL=dll WITH_ZLIB=dll WITH_SSH2=dll

  • 静态库编译命令:
    nmake /f Makefile.vc MODE=static RTLIBCFG=static VC=8 SSL_PATH=D:\libcurl-static\openssl-static ZLIB_PATH=D:\libcurl-static\zlib-static SSH2_PATH=D:\libcurl-static\libssh2-static ENABLE_IDN=no DEBUG=no WITH_SSL=static WITH_ZLIB=static WITH_SSH2=static

命令备注:ENABLE_IDN未关闭会导致函数错误,PATH类参数表示其它目录所在位置,WITH类参数表示使用静态编译或动态编译,RTLIBCFG=static参数表示当前用MT参数编译

  1. 编译结果curl-7.62.0\builds

五、libcurl三方调用

  1. include为curl-7.62.0\builds\libcurl-vc8-x86-release-dll-ssl-dll-zlib-dll-ssh2-dll-ipv6-sspi\curl*所有文件

  2. lib为curl-7.62.0\builds\libcurl-vc8-x86-release-dll-ssl-dll-zlib-dll-ssh2-dll-ipv6-sspi\lib\libcurl.lib

  3. 全部DLL为:libcurl.dll,libeay32.dll,libssh2.dll,ssleay32.dll

你可能感兴趣的:(libcurl + libssh2 + openssl + zlib windows 编译要点)