I'm compiling OpenSSL with Visual Studio 2015. I have installed:
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\nasmperl Configure VC-WIN64A —prefix=C:\test\openssl
Now I should do ms\do_win64a, but I can't find this batch file. In the directory ms, there are files
2016/08/22 17:39 <DIR> .
2016/08/22 17:39 <DIR> ..
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:
perl Configure VC-WIN32
nmake
nmake test
x64A compilation on Windows:
perl Configure VC-WIN64A
nmake
nmake test
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:
- Git for Windows. You can download it at https://git-scm.com/download/win. This guide uses version 2.11.0.3.
- Strawberry perl. You can download it at http://strawberryperl.com/ (Warning: ActivePerl is highly not recommended. It will give you strange errors during the process). This guide uses version 5.24.1.1.
- NASM assembler, which is available from http://www.nasm.us/. This guide uses version 2.12.03rc1.
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:
- Open VS2015 x64 Native Tools Command Prompt from your Start Menu. You will see command prompt.
Create
C:\builddirectory and issue the following command in the command prompt:cd c:\build
Download latest zlib & OpenSSL source codes to your
builddir by using the following commands:git clone https://github.com/madler/zlibgit 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:- Navigate to the
zlibsource folder:cd C:\build\zlib Edit the
win32\Makefile.mscfile:- Find the line starting with
CFLAGS - Replace
-MDwith-GL -MT -Zc:wchar_t- - Find the line starting with
LDFLAGS - Replace
-debugwith-opt:icf -dynamicbase -nxcompat -ltcg /nodefaultlib:msvcrt
- Find the line starting with
- Navigate to the
Build
zlibusing 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
OpenSSLdirectory: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
OpenSSLsource: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:- Find the line that starts with:
CFLAG - Append:
/Zc:wchar_t- /GL /Zi - Find the line that starts with:
LDFLAGS - Replace
/debugwith/incremental:no /opt:icf /dynamicbase /nxcompat /ltcg /nodefaultlib:msvcrt - Find the line that starts with:
EX_LIBS - Replace
ZLIB1withzlib.lib - Save changes
- Find the line that starts with:
Build
OpenSSLby issuing thenmakecommand (will take around 15 minutes).
The resulting ~3MB openssl.exe file will be located at C:\build\openssl\apps\ directory. It is fully portable, since all DLLs are included. If you need to use custom configuration file, copy C:\build\openssl\apps\openssl.cnf to your C:\Windows\ directory & edit it to your liking.
The following commands need to be executed under the administrator user
- perl Configure VC- WIN64A --prefix=C:\Build-OpenSSL-VC32-Debug-DLL
- nmake -f makefile
- nmake install
Starting with 1.1.0 there is no need of executed ms\do_*.bat files anymore.
来源:https://stackoverflow.com/questions/39076244/why-is-there-no-ms-do-ms-bat-after-perl-configure-vc-win64a