编译OpenSSL 动态库/静态库以及运行时库的选择
来源:互联网 发布:百度淘宝网购物商城 编辑:程序博客网 时间:2024/05/13 07:52
Windows下编译OpenSSL的方法
下载地址:http://www.openssl.org/source/
1、安装ActivePerl
初始化的时候,需要使用perl。perl可以从http://www.activestate.com/ActivePerl下载。
2、使用VS下的Visual Studio 20xx Command Prompt进入控制台模式
VS2005的命令:"C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat"
3、解压缩openssl的包,通过cd命令切换到openssl的目录
4、执行:perl configure VC-WIN32
5、执行:ms\do_ms
6、选择不同的编译结果
3、解压缩openssl的包,通过cd命令切换到openssl的目录
4、执行:perl configure VC-WIN32
5、执行:ms\do_ms
6、选择不同的编译结果
1) 执行:nmake -f ms/ntdll.mak
该命令生成动态库,默认使用的是MD
2) 执行:nmake -f ms/nt.mak
该命令生成静态库,默认使用的是MT
3) 想生成使用静态链接运行时库的动态库则采用下面方法
复制一个ntdll.mak并命名为ntdll_mt.mak,修改里面的 “CFLAG= /MD /Ox ..............” 为/MT ,然后重新编译,执行nmake -f ms/ntdll_mt.mak
4) 想生成使用动态链接运行时库的静态库则采用下面方法
复制一个nt.mak并命名为nt_md.mak,修改里面的 “CFLAG= /MT /Ox ..............” 为/MD ,然后重新编译 ,执行nmake -f ms/nt_md.mak
如果想要生成Debug版本的,同理,修改运行时库选项 /MTd /MDd 注意大小写一定要一致
动态库生成的位置:如果编译成功,最后的输出都在out32dll目录下 : 包括可执行文件 、两个dll和两个lib文件。最终编译出来的结果都存放在out32dll子目录下,常用的文件包括libeay32.lib,libeay32.dll,ssleay32.lib,ssleay32.dll以及openssl.exe。中间生成的obj文件都在tmp32dll子目录下,可以把它们删掉。
静态库生成的位置:如果编译成功,最后的输出都在out32目录下,中间生成的obj文件都在tmp32子目录下。
7.运行 nmake -f ms\ntdll.mak test。检查上一步安装编译是否成功。
8.运行nmake -f ms\ntdll.mak install --prefix=C:\openssl.
9.检查安装结果。打开资源管理器,在C:\openssl目录下将看到bin, include, lib三个文件夹。bin目录下包括openssl.exe(), ssleay.dll(),libeay.dll(),lib目录下包括两个lib文件爱你,即ssleay32.lib,libeay.lib,分别是ssleay.dll、libeay.dll动态链接库对应的lib文件。include目录包括了openssl开发设计的头文件。
需要注意的是:
1: 在使用 perl configure VC-WIN32时,VC-WIN32一定要大写,否则会出现
.\crypto\asn1\n_pkey.c(106) :error C2370: 'NETSCAPE_PKEY_it' : redefinition; di
fferent storage class
.\crypto\asn1\n_pkey.c(103) : see declaration of 'NETSCAPE_PKEY_it'
NMAKE : fatal error U1077: 'cl' : return code '0x2'的错误,
fferent storage class
.\crypto\asn1\n_pkey.c(103) : see declaration of 'NETSCAPE_PKEY_it'
NMAKE : fatal error U1077: 'cl' : return code '0x2'的错误,
10.其它命令:
nmake -f ms/ntdll.mak clean // 清除编译的中间文件
nmake -f ms/ntdll.mak install // 安装 ,主要是linux下面会自动放到程序目录中
nmake -f ms\ntdll.mak test//检查上一步安装编译是否成功。
阅读全文
0 0
- 编译OpenSSL 动态库/静态库以及运行时库的选择
- 编译OpenSSL 动态库/静态库以及运行时库的选择
- 编译OpenSSL 动态库/静态库以及运行时库的选择
- 编译OpenSSL 动态库/静态库以及运行时库的选择
- 编译OpenSSL 动态库/静态库以及运行时库的选择
- openssl动态库生成以及交叉编译
- openssl动态库生成以及交叉编译
- openssl动态库生成以及交叉编译
- openssl动态库生成以及交叉编译
- openssl动态库生成以及交叉编译
- 简谈用g++编译运行c++代码流程,以及动态库静态库的创建与使用
- android编译openssl静态库.a 动态库.so
- openssl vs2015编译静态库
- 编译运行基于openssl库的程序
- 编译静态库、动态库以及条件编译用法
- openssl在wince下的编译(静态库)
- Android下编译OpenSSL静态库
- Android下编译OpenSSL静态库
- Leetcode:Best Time to Buy and Sell Stock
- javascript的map中使用push和使用renturn速度比较
- 关于ATIS以及基于注意力机制的递归神经网络模型 的学习记录
- Nginx+Sticky实现负载均衡(2)
- HashMap原理
- 编译OpenSSL 动态库/静态库以及运行时库的选择
- acm竞赛题目连续质数之和
- 模线性方程
- redis安装
- System类和Runtime类
- 程序员的朋友圈有毒
- 成为 Google 认证机器学习工程师,零基础也只需要 2 步!
- 5分钟回顾苹果发布会
- 程序员怎么追妹子?用代码呀~