问题
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\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 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?
回答1:
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.
回答2:
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:\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:- Navigate to the
zlib
source folder:cd C:\build\zlib
Edit the
win32\Makefile.msc
file:- Find the line starting with
CFLAGS
- Replace
-MD
with-GL -MT -Zc:wchar_t-
- Find the line starting with
LDFLAGS
- Replace
-debug
with-opt:icf -dynamicbase -nxcompat -ltcg /nodefaultlib:msvcrt
- Find the line starting with
- Navigate to the
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
:- Find the line that starts with:
CFLAG
- Append:
/Zc:wchar_t- /GL /Zi
- Find the line that starts with:
LDFLAGS
- Replace
/debug
with/incremental:no /opt:icf /dynamicbase /nxcompat /ltcg /nodefaultlib:msvcrt
- Find the line that starts with:
EX_LIBS
- Replace
ZLIB1
withzlib.lib
- Save changes
- Find the line that starts with:
Build
OpenSSL
by issuing thenmake
command (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.
回答3:
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