问题
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?
回答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:\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.
回答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