• 在 Windows下用 Visual Studio 编译 OpenSSL


    OpenSSL官方网站下载OpenSSL源代码包

    以OpenSSL 1.0.0g版本为例

    1、下载 openssl-1.0.0g.tar.gz

    2、安装 ActivePerl, 这里使用最新ActivePerl 5.14.2.1402 版本因为初始化的时候, 需要用到 perl 解释器。

    3、使用 VS2010 下的 Visual Studio 2010 Command Prompt 进入控制台模式 (这个模式会自动设置各种环境变量,根据编译32位、64位、Itanium自己选择)。

    4、解压缩 openssl 源代码包,进入 openssl 的根目录, 如 E:\openssl-1.0.0g。

    5、perl configure VC-WIN32

    必须在 c:\openssl-1.0.0g 目录下执行该命令, 否则找不到 Configure 文件, 这时就必须指定完整的 Configure 文件路径。

    64编译的话 Win64/x64 执行 perl Configure VC-WIN64A;Win64/IA64 执行 perl Configure VC-WIN64I。

    6、ms\do_ms

    在 c:\openssl-1.0.0g 目录下执行 ms\do_ms 命令

    64位编译的话 Win64/x64 执行 ms\do_win64a ;Win64/IA64 执行 ms\do_win64i。

    7、在正式编译之前

    (1). 找到 c:\openssl-1.0.0g\ms\ntdll.mak 文件, 用记事本打开, 搜索 “/MD” 字符串, 替换成 “/MT”, 这将导致静态链接 C 运行, 避免了在目标机器上安装 VC 再发行包等等操作。

    (2) 如果在VC6中编译,需要找到 c:\openssl-1.0.0g\e_os.h 文件, 用记事本打开, 找到

    #  if !defined(OPENSSL_USE_IPV6)
    # if defined(AF_INET6) && !defined(OPENSSL_SYS_BEOS_BONE) && !defined(NETWARE_CLIB)
    # define OPENSSL_USE_IPV6 1
    # else
    # define OPENSSL_USE_IPV6 0
    # endif
    # endif

    替换成

    #if !defined(_MSC_VER) || (defined(_MSC_VER) && _MSC_VER > 1200 )
    # if !defined(OPENSSL_USE_IPV6)
    # if defined(AF_INET6) && !defined(OPENSSL_SYS_BEOS_BONE) && !defined(NETWARE_CLIB)
    # define OPENSSL_USE_IPV6 1
    # else
    # define OPENSSL_USE_IPV6 0
    # endif
    # endif
    #else
    # if !defined(OPENSSL_USE_IPV6)
    # define OPENSSL_USE_IPV6 0
    # endif
    #endif

    这一步的目的是,在 VC6 下编译时, 避免使用 IPv6 特性, 因为 VC6 不支持。这里我们忽略这步。

    (3)找到 c:\openssl-1.0.0g\ms\ntdll.mak 文件, 用记事本打开可以根据需要修改默认安装路径(静态链接库编译版本打开nt.mak),默认路径如下:

    INSTALLTOP=\usr\local\ssl
    OPENSSLDIR=\usr\local\ssl

    7、编译动态链接库版本: nmake -f ms\ntdll.mak

    完成编译后,输出的动态链接库版本文件在 out32dll 里面,包括应用程序的可执行文件, lib 文件和 dll 文件。

    8、测试动态链接库版本: nmake -f ms\ntdll.mak test

    9、安装动态链接库版本: nmake -f ms\ntdll.mak install

    10、编译静态链接库版本: nmake -f ms\nt.mak

    完成编译后,输出的静态链接库版本文件在 out32 里面, 包括应用程序的可执行文件和 lib 文件。

    11、测试静态链接库版本: nmake -f ms\nt.mak test

    12、安装动态链接库版本: nmake -f ms\nt.mak install



  • 相关阅读:
    C语言中const关键字的用法
    LDO和DC-DC的概念,区别及优缺点
    Ubuntu下几个命令行方式使用的图片浏览工具
    I2C和I2S的区别和使用方法
    scikit-image 图像处理库介绍
    USB协议介绍
    Ubuntu 16.04 python和OpenCV安装
    一种基于python的人脸识别开源系统
    numpy 介绍
    python enumerate用法总结
  • 原文地址:https://www.cnblogs.com/chinalantian/p/2327796.html
Copyright © 2020-2023  润新知