Building OpenSSL for Visual Studio

博主亲测有效。

转载请注明出处:http://blog.csdn.net/xiaoy_h/article/details/36444013

原英文帖子:http://developer.covenanteyes.com/building-openssl-for-visual-studio/

译文:

在Windows上生成支持VS的OpenSSL是相当简单,但简单地事情却又蜿蜒曲折,我将会在此写下这曲折经历,将来的实验当中才能减少伤痛。

(来外说话真有情调啊)

你需要做什么?

你需要安装:

VS2010(这个将会最大可能地与老版本兼容)

ActivePerl【1】

最新版的 OpenSSL source-code【2】

生成配置

解压【3】OpenSSL源码到两个文件夹,一个用于32位生成,一个用于64位【4】。比如,可以解压到C:\openssl-src-32 和 C:\openssl-src-64 目录下。

生成32位静态库

1、打开Visual Studio 命令提示符 (2010)【5】

2、CD命令进入32位源码目录(比如:cd C:\openssl-src-32).

3、执行如下命令:【6】

perl Configure VC-WIN32 --prefix=C:\Build-OpenSSL-VC-32
ms\do_ms
nmake -f ms\nt.mak
nmake -f ms\nt.mak install

最终将生成在C:\Build-OpenSSL-VC-32.目录

生成32位调试版本静态库

这些步骤将会直接嵌入调试标识到lib文件中。不要期望看到任何pdb文件。

1、同上打开命令提示符

2、同上cd进源码目录(还是 C:\openssl-src-32)

3、执行如下命令:

perl Configure debug-VC-WIN32 --prefix=C:\Build-OpenSSL-VC-32-dbg
ms\do_ms

4、在类似notepad的文本编辑器中打开ms\nt.mak文件并将其中所有的/Zi替换成/Z7。将会有三个被替换。【7】

5、执行如下命令:

nmake -f ms\nt.mak
nmake -f ms\nt.mak install

最终生成在目录C:\Build-OpenSSL-VC-32-dbg。并将某些文件改成如下名字:libeay32-debug.lib 和ssleay32-debug.lib

生成64位静态库

1、打开VisualStudio x64 命令提示符(在开始菜单中找)

2、cd进OpenSSL的64位源码文件夹 (e.g. cd C:\openssl-src-64)

3、执行命令:

perl Configure VC-WIN64A --prefix=C:\Build-OpenSSL-VC-64
ms\do_win64a
nmake -f ms\nt.mak
nmake -f ms\nt.mak install

这将输出在C:\Build-OpenSSL-VC-64目录

注意:这次输出的名字还是叫libeay32.lib 和 ssleay32.lib。你必须自行将名字改成对应的名字(避免混淆)。

生成带调试符的64位静态库

这些步骤将会直接嵌入调试标识到lib文件中。不要期望看到任何pdb文件。

1、打开VisualStudio x64 命令提示符

2、cd进OpenSSL的64位源码文件夹 (e.g. cd C:\openssl-src-64)

3、执行命令:

perl Configure debug-VC-WIN64A --prefix=C:\Build-OpenSSL-VC-64-dbg
ms\do_win64a

4、在文本编辑器中同上编辑那个文件,除了以ASM开头的那一行,共有两次替换。【8】

5、执行命令:

nmake -f ms\nt.mak
nmake -f ms\nt.mak install

这将输出在这个目录下:C:\Build-OpenSSL-VC-64-dbg。同事名字也要改成这样的:libeay64-debug.lib 和ssleay64-debug.lib.

不要做什么?

我在sun下尝试了每一种可以链接到VS工程的方法来获取OpenSSL的windows生成。在这条路上我学到了很多。这些就是我知道的不要去做的事情:

-不要盲目遵循OpenSSL源码目录下给出的WIN32/64安装指令。到网上找指南。

-不要在Cygwin中生成OpenSSL。这虽然简单,但是最终不能成功链接到VS。

-不要在MSYS和MinGW中建立OpenSSL。这很困难,而且也不能成功链接到VS。

-不要使用Windows安装指令做提到的NASM,这对VS的Build来说没有必要。(无论怎么说它只支持32位的。)

-Strawberry Perl在这些奇葩的配置中并不总是有效。ActivePerl似乎更稳定。

-不要在相同的目录里建立32位和64位OpenSSL。第一个生成操作将会在目录中留下些"遗物",这些将会搅乱第二个生成操作。(很明显的是,执行一个clean是远远不够的。)

-不要尝试在VS 64位命令提示符里建立32位OpenSSL,反之亦然。这将不会有任何效果。

引用

以下将是非常有用的网址:

https://github.com/freelan-developers/freelan-buildtools/blob/master/INSTALL.md

脚注:

【1】、不要使用Strawberry Perl(可以看post来的评论)。

【2】、OpenSSL version 1.0.1c是写这篇文章时的最新版本。

【3】、7-zip可以很好地在Windows解压缩.tar.gz文件。这是一个两步处理过程。

【4】、OpenSSL的生成脚本对于在一个队列中处理两个平台下的build不够智能。不同平台的生成必须从头开始。

【5】、你可以在开始菜单的某个地方找他它。

【6】、使用ms\\ntdll.mak反而会生成共享库。

【7】、/Zi选项虽然有用,但是不指定更多的选项将很难找到正确的.pdb文件。简单地说,/Z7选项仅仅是将所有的调试标识嵌入到lib文件。到这里看更多细节。

【8】、为了生成64位版本,VS使用MASM(ml64.exe)来编译程序集代码。根据MASM’s documentation,/Z7选项是不被支持的。

Building OpenSSL for Visual Studio,布布扣,bubuko.com

时间: 2024-10-12 17:38:49

Building OpenSSL for Visual Studio的相关文章

Compile OpenSSL with Visual Studio 2019

1. Download OpenSSL source code from https://github.com/openssl/openssl/releases. 2. Download and install ActivePerl from https://www.activestate.com/products/perl/downloads/ 3. Start the visual studio 2019 developer command tool "x64 Native Tools Co

Building Python 2.7.10 with Visual Studio 2010 or 2015 - Google Chrome

您的浏览器(Chrome 33) 需要更新.该浏览器有诸多安全漏洞,无法显示本网站的所有功能.?了解如何更新浏览器 × p-nand-q.com C++? Python? Programming? Languages? Humor? Tools? Misc? Building Python 2.7.10 with Visual Studio 2010 or 2015 7th revision, August 7, 2015.A document history can be found at t

GSL 1.15 and 1.16 building with Visual Studio 2010 --FROM 4fire

http://4fire.wordpress.com/2012/03/18/gsl-1-15-building-with-visual-studio-2010/ Update 05/02/2014: A good book for GSL (updated with 1.16 version) is GNU Scientific Library Reference Manual – Third Edition. Update 14-11-2013: Building GSL 1.16with V

在 Windows下用 Visual Studio 编译 OpenSSL 1.1.0

到OpenSSL官方网站下载OpenSSL源代码包 1.下载 openssl-1.1.0.tar.gz 2.安装 ActivePerl, 可以到http://www.activestate.com/activeperl/downloads下载最新版本, 需要用到 perl 解释器. 注:Perl 最低版本要求5.10以上,Windows XP用户最后支持版本ActivePerl 5.20.2.2002 版本 3.使用 VS2010 下的 Visual Studio 2010 Command Pr

Visual Studio 2005 学习笔记一 入门

转载自:http://blog.163.com/zm_shichaoren/blog/static/6880234120087211452776/ Visual studio 2005入门记 终于卸掉了Visual C++6.0,换上了全新的Visual C++2005.尽管是简体中文版的,但是功能强大的Visual studio 2005 IDE庞大的开发环境和N多的配置设置,学习起来还不是很简单.C++/CLI通过对ISO C++ 标准的纯粹扩展和新语法,不像传统的MS-DOS 控制台程序,

Visual Studio for Mac Preview离线下载安装

Visual Studio for Mac离线下载安装. 环境:OS X EI Caption 10.11.2 .NET Core SDK 1.1 需预先安装 .NET Core 1.1 SDK macOS版下载地址:https://go.microsoft.com/fwlink/?LinkID=835011 安装SDK需先安装openssl. brew update brew install openssl mkdir -p /usr/local/lib ln -s /usr/local/op

Mac上使用Visual Studio Code开发/调试.NET Core代码

Mac上使用Visual Studio Code开发/调试.NET Core代码 .Net Core 1.0终于发布了,Core的一大卖点就是跨平台.这个跨平台不只是跨平台运行,而且可以跨平台开发.今天抽空研究了下在Mac下如何使用VS Code来开发.NET Core程序,并且调试代码. 1.安装.NET Core 在mac上打开终端: ~$ brew update ~$ brew install openssl ~$ brew link --force openssl 如果不能使用brew命

How To Compile Qt with Visual Studio 2010

This post is a step-by-step guide on how to compile Qt 4.x.x with MSVC 2010. Although we use Qt 4.7.1 as an example (for historical reasons), you can also find suggestions on building newer versions of Qt by MSVC 2012 and even by Intel Compiler for b

Visual Studio Code Setup

Windows https://code.visualstudio.com/docs/setup/windows Additional Components and Tools https://code.visualstudio.com/docs/setup/additional-components VS Code is a small download by design and only includes the minimum number of components shared ac