windows 10下 opessl 64位编译

说明

项目中先前运行程序全部是编译成32位版本进行发版,现进行改造改为64位版本进行发布。涉及到第三方依赖库全需对应编译出64位依赖库。

环境

Windows 10
编译器 vs 2010 (由于本机上装有各个版本的VS 编译器,因此在编译时需先指定编译环境变量。
【"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\vcvars64.bat" 】)

OPEN SSL 版本

openssl-1.0.1c

perl

下载地址

64位编译步骤

  1. 在openssl 源代码目录下打开dos命令窗口
    【快捷打开命令窗口方式:按住shift 键,鼠标在空白处按下右键,点击菜单“在此处打开命令窗口”】

  2. 运行configure:
    perl Configure VC-WIN64A 或 perl Configure debug-VC-WIN64A

  3. 创建Makefile文件:注意路径中的斜线。
    ms\do_win64a

  4. 编译动态库:
    nmake -f ms\ntdll.mak

  5. 编译静态库:
    nmake -f ms\nt.mak


编译过程


Microsoft Windows [版本 10.0.14393] (c) 2016 Microsoft Corporation。保留所有权利。

d:\work\utils\openssl-1.0.1c>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\vcvars64.bat 'C:\Program' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

d:\work\openssl-1.0.1c>"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\vcvars64.bat" Setting environment for using Microsoft Visual Studio 2010 x64 tools.

d:\work\utils\openssl-1.0.1c>perl Configure VC-WIN64A Configuring for VC-WIN64A no-ec_nistp_64_gcc_128 [default] OPENSSL_NO_EC_NISTP_64_GCC_128 (skip dir) no-gmp [default] OPENSSL_NO_GMP (skip dir) no-jpake [experimental] OPENSSL_NO_JPAKE (skip dir) no-krb5 [krb5-flavor not specified] OPENSSL_NO_KRB5 no-md2 [default] OPENSSL_NO_MD2 (skip dir) no-rc5 [default] OPENSSL_NO_RC5 (skip dir) no-rfc3779 [default] OPENSSL_NO_RFC3779 (skip dir) no-sctp [default] OPENSSL_NO_SCTP (skip dir) no-shared [default] no-store [experimental] OPENSSL_NO_STORE (skip dir) no-zlib [default] no-zlib-dynamic [default] IsMK1MF=1 CC =cl CFLAG =-DOPENSSL_THREADS -DDSO_WIN32 -W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM EX_LIBS = CPUID_OBJ =x86_64cpuid.o BN_ASM =bn_asm.o x86_64-mont.o x86_64-mont5.o x86_64-gf2m.o modexp512-x86_64.o DES_ENC =des_enc.o fcrypt_b.o AES_ENC =aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o BF_ENC =bf_enc.o CAST_ENC =c_enc.o RC4_ENC =rc4-x86_64.o rc4-md5-x86_64.o RC5_ENC =rc5_enc.o MD5_OBJ_ASM =md5-x86_64.o SHA1_OBJ_ASM =sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o RMD160_OBJ_ASM= CMLL_ENC =cmll-x86_64.o cmll_misc.o MODES_OBJ =ghash-x86_64.o ENGINES_OBJ = PROCESSOR = RANLIB =true ARFLAGS = PERL =perl SIXTY_FOUR_BIT mode DES_INT used RC4_CHUNK is unsigned long long

Configured for VC-WIN64A.

d:\work\utils\openssl-1.0.1c>ms\do_win64a.bat

d:\work\utils\openssl-1.0.1c>perl util\mkfiles.pl 1>MINFO

d:\work\utils\openssl-1.0.1c>cmd /c "nasm -f win64 -v" 1>NUL: 2>&1

d:\work\utils\openssl-1.0.1c>if 1 NEQ 0 goto ml64

d:\work\utils\openssl-1.0.1c>perl ms\uplink-x86_64.pl masm 1>ms\uptable.asm

d:\work\utils\openssl-1.0.1c>ml64 -c -Foms\uptable.obj ms\uptable.asm Microsoft (R) Macro Assembler (x64) Version 10.00.40219.01 Copyright (C) Microsoft Corporation. All rights reserved.

Assembling: ms\uptable.asm

d:\work\openssl-1.0.1c>perl util\mk1mf.pl VC-WIN64A 1>ms\nt.mak

d:\work\utils\openssl-1.0.1c>perl util\mk1mf.pl dll VC-WIN64A 1>ms\ntdll.mak

d:\work\utils\openssl-1.0.1c>perl util\mkdef.pl 32 libeay 1>ms\libeay32.def

d:\work\utils\openssl-1.0.1c>perl util\mkdef.pl 32 ssleay 1>ms\ssleay32.def

你可能感兴趣的:(vc)