C 为Windows x64构建openSSL

C 为Windows x64构建openSSL,c,configuration,openssl,C,Configuration,Openssl,基本上,这应该非常简单,但出于某种神奇的原因,结果库是Win32而不是x64 在调查过程中,我发现第一步配置失败: perl Configure VC-WIN64A no-asm enable-static-engine --prefix=x64\Release 这将打印(完整拷贝粘贴): 请注意,CFLAG包含用于Win32的选项。这是非常不寻常的,我不知道什么是错误的,我如何处理这个问题 我的构建脚本大致如下所示(最初它是为Win32构建的,我进行了修改以支持x64): 任何帮助都将不胜感

基本上,这应该非常简单,但出于某种神奇的原因,结果库是
Win32
而不是
x64

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

perl Configure VC-WIN64A no-asm enable-static-engine --prefix=x64\Release
这将打印(完整拷贝粘贴):

请注意,
CFLAG
包含用于
Win32
的选项。这是非常不寻常的,我不知道什么是错误的,我如何处理这个问题

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

任何帮助都将不胜感激

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

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


我找到了答案,但答案与我的问题不符。我的VS工具配置正确(VS2017)。我必须使用VS,而且使用它没有任何问题(
nmake
works)。

好的,我终于找到了解决方案。
我找到了

基本上,必须使用以下方法重新配置nmake,以便为
x64
构建(openSSL配置不是问题):

VsDevCmd.bat -host_arch=amd64 -arch=amd64

在先前的尝试之后,必须调用
nmake-f ms\nt.mak clean
,以便上述操作生效。

好的,最后我得到了解决方案。
我找到了

基本上,必须使用以下方法重新配置nmake,以便为
x64
构建(openSSL配置不是问题):

VsDevCmd.bat -host_arch=amd64 -arch=amd64

在先前的尝试之后,必须调用
nmake-f ms\nt.mak clean
,以便上述操作生效。

如果继续构建,您是否真的获得了32位库?虽然我在C标志中的一些已定义符号的名称中看到了“WIN32”,但我认为这些符号中的任何一个都不能控制为其构建库的目标体系结构。是的。我正在检查
dumpbin/headers%LIB_TO_CHECK%| find machine
@JohnBollinger感谢您的帮助。这给了我一个提示,我可以在其他步骤中尝试搜索问题。如果继续构建,您真的会得到一个32位库吗?虽然我在C标志中的一些已定义符号的名称中看到了“WIN32”,但我认为这些符号中的任何一个都不能控制为其构建库的目标体系结构。是的。我正在检查
dumpbin/headers%LIB_TO_CHECK%| find machine
@JohnBollinger感谢您的帮助。这给了我一个提示,我可以在其他步骤中尝试搜索问题。
VsDevCmd.bat -host_arch=amd64 -arch=amd64