gpt4 book ai didi

c - 为 Windows x64 构建 openSSL

转载 作者:太空宇宙 更新时间:2023-11-04 04:13:25 25 4
gpt4 key购买 nike

基本上这应该很简单,但由于某些神奇的原因,结果库是 Win32 而不是 x64

在调查过程中,我发现第一步 Configure 失败了:

perl Configure VC-WIN64A no-asm enable-static-engine --prefix=x64\Release

这会打印(完整复制粘贴):

Configuring for VC-WIN64A
no-asm [option] OPENSSL_NO_ASM
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-libunbound [experimental] OPENSSL_NO_LIBUNBOUND (skip dir)
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-ssl-trace [default] OPENSSL_NO_SSL_TRACE (skip dir)
no-ssl2 [default] OPENSSL_NO_SSL2 (skip dir)
no-store [experimental] OPENSSL_NO_STORE (skip dir)
no-unit-test [default] OPENSSL_NO_UNIT_TEST (skip dir)
no-weak-ssl-ciphers [default] OPENSSL_NO_WEAK_SSL_CIPHERS (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
EX_LIBS =
CPUID_OBJ =mem_clr.o
BN_ASM =bn_asm.o
EC_ASM =
DES_ENC =des_enc.o fcrypt_b.o
AES_ENC =aes_core.o aes_cbc.o
BF_ENC =bf_enc.o
CAST_ENC =c_enc.o
RC4_ENC =rc4_enc.o rc4_skey.o
RC5_ENC =rc5_enc.o
MD5_OBJ_ASM =
SHA1_OBJ_ASM =
RMD160_OBJ_ASM=
CMLL_ENC =camellia.o cmll_misc.o cmll_cbc.o
MODES_OBJ =
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.

请注意,CFLAG 包含用于 Win32 的选项。这很不寻常,我不知道哪里出了问题,也不知道该如何解决这个问题。

我的构建脚本大致如下所示(最初它是为 Win32 构建的,我进行了修改以支持 x64):

REM setup some variables
call commonSetup.cmd

set PREFIX=x64\Release
set PLATFORM=VC-WIN64A
set MS_CONF=do_win64a
set EXT=

pushd %THIRD_PARTY_DIR_BASE%\openssl

echo PREFIX=%PREFIX% PLATFORM=%PLATFORM% MS_CONF=%MS_CONF% EXT=%EXT%

perl Configure %PLATFORM% no-asm enable-static-engine --prefix=%PREFIX%

call ms\%MS_CONF%

perl -i.bak -pe "s/([-\/])Zi /\1Z7 /g" ms/nt.mak

mkdir inc32\openssl
nmake -f ms\nt.mak

REM jom -f ms\nt.mak AS=ml64 -j %PROCN%
nmake -f ms\nt.mak install

rmdir /s/q inc32
rmdir /s/q out32%EXT%
rmdir /s/q tmp32%EXT%

我们将不胜感激。

OpenSSL 版本:1.0.2p 2018 年 8 月 14 日

在将项目的其他依赖项构建到 x64 平台时,我没有遇到这个问题。

我找到了 this question with exactly same issue ,但那里的答案与我的问题不符。我的 VS 工具配置正确 (VS2017)。我必须使用 VS,并且使用它没有任何问题(nmake 有效)。

最佳答案

好吧,我终于找到了解决方案。
我在 other SO ansear 中找到了.

基本上 nmake 必须重新配置为构建 x64(openSSL 配置不是问题)使用这个:

VsDevCmd.bat -host_arch=amd64 -arch=amd64

在较早的尝试之后,必须调用 nmake -f ms\nt.mak clean 才能使上述生效。

关于c - 为 Windows x64 构建 openSSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54695248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com