You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows10编译OpenSSL 3.5.x 64位二进制文件遇链接错误求助

解决OpenSSL 3.5.4在Windows x64环境编译时的LNK1112架构冲突错误

问题根源

你在x64本机工具命令提示符中使用了VC-WIN32作为配置目标,这会让OpenSSL生成32位的汇编目标文件(比如aes-586.obj),但当前环境下的VC编译器默认输出64位的C代码目标文件,两者架构不匹配,导致链接时触发LNK1112错误。

解决方案

  1. 将配置命令中的目标架构参数从VC-WIN32改为VC-WIN64A(OpenSSL针对Windows x64的官方目标参数)
  2. 确保zlib库是用x64工具链编译的(和当前命令提示符环境一致)
  3. 清理旧编译残留后重新执行配置和编译

详细操作步骤

  1. 清理之前的编译生成文件:
    nmake clean
    
  2. 重新执行配置命令,替换架构参数:
    perl Configure no-rc5 no-idea enable-mdc2 enable-zlib VC-WIN64A -I..\zlib /LIBPATH:..\zlib
    
  3. 重新编译:
    nmake
    

补充说明

  • 切换到VC-WIN64A后,OpenSSL会自动选择适配x64的汇编实现(包括你提到的aesni-x86_64.pl对应的代码),无需手动修改汇编参数或脚本逻辑。
  • 确认zlib编译环境:如果之前的zlib是在x86命令提示符下编译的,需要重新在x64环境下编译zlib,否则后续链接zlib时仍会出现架构冲突。

内容的提问来源于stack exchange,提问作者Petr Lazecky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 03:14:51