I'm compiling OpenSSL with Visual Studio 2015. I have installed: 1. Visual Studio 2015 on Windows 10.
ActivePerl-5.24.0.2400-MSWin32-x64-300558.
nasm-2.11.08-win32.
OpenSSL source code by git clone git://git.openssl.org/openssl.git
What I did are:
Create a batch file with lines below.
@call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64 @set path=%path%;C:\Users\gchen\AppData\Local\nasm
perl Configure VC-WIN64A —prefix=C:\test\openssl
Now I should do ms\do_win64a. But I can't find this batch file. in directory 'ms', there are files
2016/08/22 17:39 .
2016/08/22 17:39 ..
2016/08/21 14:23 3,646 applink.c
2016/08/21 14:23 1,247 cmp.pl
2016/08/21 14:23 2,815 segrenam.pl
2016/08/21 14:23 4,541 tlhelp32.h
2016/08/21 14:23 1,137 uplink-common.pl
2016/08/21 14:23 1,472 uplink-ia64.pl
2016/08/21 14:23 1,111 uplink-x86.pl
2016/08/21 14:23 1,594 uplink-x86_64.pl
2016/08/21 14:23 4,225 uplink.c
2016/08/21 14:23 2,268 uplink.h
but there is no ms-win64a.bat. what did I do wrong?
The build process has changed with the new 1.1.0 release. Probably you already figured out yourself, but anyway:
Starting with 1.1.0 there are no
ms\do_*.bat
files anymore.Instead execute the following steps:
x32 compilation on Windows:
x64A compilation on Windows:
Configure your Compiler environment as before and point your path to Perl (and NASM if used).
Source: The
INSTALL
file included in the 1.1.0 release.Since the new 1.1.0 release there is no
ms\
folder in the source code. And if you wonder what should you edit to build a static version nowadays (which results in a single .exe file without any DLLs). Here is the full guide.You will need the following prerequisites:
You are expected to install all those tools system-wide and add them to your
%PATH%
environmental variable.After you got everything we need, just follow this simple steps:
Create
C:\build
directory and issue the following command in the command prompt:cd c:\build
Download latest zlib & OpenSSL source codes to your
build
dir by using the following commands:git clone https://github.com/madler/zlib
git clone https://github.com/openssl/openssl
First we have to build static
zlib
. To do that first we will need to edit some configuration files:zlib
source folder:cd C:\build\zlib
Edit the
win32\Makefile.msc
file:CFLAGS
-MD
with-GL -MT -Zc:wchar_t-
LDFLAGS
-debug
with-opt:icf -dynamicbase -nxcompat -ltcg /nodefaultlib:msvcrt
Build
zlib
using the following command (should take less than a minute):nmake -f win32/Makefile.msc AS=ml64 LOC="-DASMV -DASMINF -DNDEBUG -I." OBJA="inffasx64.obj gvmat64.obj inffas8664.obj"
Copy resulting files to your
OpenSSL
directory:xcopy zlib.h C:\build\openssl\
xcopy zconf.h C:\build\openssl\
xcopy zlib.lib C:\build\openssl\
xcopy zlib.pdb C:\build\openssl\
Navigate to
OpenSSL
source:cd C:\build\openssl\
and configure it to use static zlib & read configuration files (openssl.cnf
) fromC:\Windows\
directory.perl Configure VC-WIN64A no-shared zlib no-zlib-dynamic threads --prefix=C:\Windows\
Now make the following edits to the
C:\build\openssl\makefile
:CFLAG
/Zc:wchar_t- /GL /Zi
LDFLAGS
/debug
with/incremental:no /opt:icf /dynamicbase /nxcompat /ltcg /nodefaultlib:msvcrt
EX_LIBS
ZLIB1
withzlib.lib
Build
OpenSSL
by issuing thenmake
command (will take around 15 minutes).The resulting ~3MB
openssl.exe
file will be located atC:\build\openssl\apps\
directory. It is fully portable, since all DLLs are included. If you need to use custom configuration file, copyC:\build\openssl\apps\openssl.cnf
to yourC:\Windows\
directory & edit it to your liking.