zoukankan      html  css  js  c++  java
  • 编绎openssl杂记(window)

    Window 下 OpenSSL 编绎过程

    1. 下载 ActivePerl-5.12.4.1205  , openssl-0.9.8 , 配置Perl环境变量 , 解压openssl-0.9.8
    2. 进入 CMD ,进入VS2008 / VS2010 命令提示界面. 执行: vcvarsall.bat
    3. CD 切入 进入 openssl-0.9.8 解压目录 ,  执行  perl Configure VC-WIN32 no-asm
    4. 执行 msdo_ms
    5. 修改编译参数 进入 ms t.mak 及 ms tdll.mak 移除参数 : /WX /G5
    6. 执行 nmake -f ms tdll.mak (动态库) 或者 nmake -f ms t.mak (静态库)
    本人编绎结果是: VS2010编绎 nmake -f ms tdll.mak 通过 , VS2008 编绎 nmake -f ms t.mak 通过
    其中 VS2008 ntdll.mak 编绎通过,但运行异常。
    7. cd out32dll 或 cd out32 切入输出目录,执行命令 ..ms est
    结果: passed all tests 编绎成功。



    配置开发环境,以 VS2008 为例:
    1.工具->选项->项目和解决方案->VC++ 目录 添加两项:
        1.下拉列表切换至 包含文件 增加路径 为 OpenSSL解压路径下的 include 目录。
        2.下拉列表切换至 库文件 增加路径 为编绎后 outdll 目录 或out32dll 目录。

    2.项目->属性 对话框 , 配置属性 -> 链接器 -> 命令行 添加  ssleay32.lib libeay32.lib 保存,也可取消该步骤,在代码文件中引入
    #pragma comment(lib, "ssleay32.lib")
    #pragma comment(lib, "libeay32.lib")

    完成后,即可进入下一步代码调用 , 如果仍出现运行异常,尝试 项目->属性 对话框 , 配置属性 -> C/C++ -> 代码生成 运行库 切换为 多线程 DLL (/MD) , 因为OPENSSL 默认编绎 选择 /MD 模式。

    补充一点,本人VS2008编绎  nmake -f ms tdll.mak 模式 代码无法正常运行 , 切换到 nmake -f ms t.mak 方式编绎 恢复正常运行。

    编绎之后 Debug 模式在XP环境运行异常,原因是 XP环境中没有Debug 运行库环境,切换Release方式编绎可运行。

    VS2010 之前 DLL有 程序清单配置,这个在 VS2010之后取消了。有时不同的运行环境库如VC90环境与VC100 不同编绎DLL混合运行会报错,可参考静态编绎。

    检查运行环境清单:
    项目->属性 对话框 , 配置属性 -> 清单工具 -> 输入和输出 嵌入清单 选否 , 如此,下次编译时,会生成同名的:  .manifest 后缀文件。

    为了避免不必要麻烦, 如果 VS2008 做为开发环境,就用 VS2008做为DLL编绎环境,同理 VS2010 一样。

    //////////////////////////////////////


    重复编绎清除指令:
    nmake -f ms tdll.mak clean
    nmake -f ms t.mak clean

  • 相关阅读:
    分享 | 自定义属于自己的U盘图标
    GIF工具 | 分享几个Gif相关工具
    XTU | 人工智能入门复习总结
    XTU | 物联网概论复习总结
    收纳箱2号 | 前端开发大全
    收纳箱1号 | GitHub Pages部署静态网页的一点私货
    博客 | 基于Travis CI实现Hexo在Github和Coding的同步自动化部署
    图床plus演示 | 图床及在线分享演示文稿工具
    css写实心正三角和倒三角
    React 多个className的写法
  • 原文地址:https://www.cnblogs.com/a_bu/p/4366334.html
Copyright © 2011-2022 走看看