【问题标题】:How to build OpenSSL 1.1如何构建 OpenSSL 1.1
【发布时间】:2019-10-23 01:39:40
【问题描述】:

在 Windows 10 (x64) 上通过命令行构建 OpenSSL1.1 时,出现错误。 x86 构建成功。 x64构建错误的原因是什么? 出现LNK1112时,从解决方案的属性中引导如何更改目标计算机,但是这个设置可以通过命令行来更改吗?

■ 现象

使用 perl 生成 makefile 后,nmake 出现错误。

错误信息

cl  /Zi /Fdossl_static.pdb /Gs0 /GF /Gy /MD /W3 /wd4090 /nologo /O2 /I "." /I "crypto\include" /I "include" /I "crypto" -D"L_ENDIAN" -D"OPENSSL_PIC" -D"OPENSSLDIR=\"C:\\Program Files\\Common Files\\SSL\"" -D"ENGINESDIR=\"C:\\openssl\\build\\win\\x64\\lib\\engines-1_1\"" -D"OPENSSL_SYS_WIN32" -D"WIN32_LEAN_AND_MEAN" -D"UNICODE" -D"_UNICODE" -D"_CRT_SECURE_NO_DEPRECATE" -D"_WINSOCK_DEPRECATED_NO_WARNINGS" -D"OPENSSL_USE_APPLINK" -D"NDEBUG"  /Zs /showIncludes "crypto\cversion.c" 2>&1 > crypto\cversion.d
        IF EXIST .manifest DEL /F /Q .manifest
        IF EXIST libcrypto-1_1-x64.dll DEL /F /Q libcrypto-1_1-x64.dll
        link /nologo /debug /dll  /nologo /debug  /implib:libcrypto.lib /out:libcrypto-1_1-x64.dll /def:libcrypto.def @C:\Users\XXXXXXXXX\AppData\Local\Temp\nm5483.tmp || (DEL /Q libcrypto-1_1-x64.* libcrypto.lib && EXIT 1)
crypto\cversion.obj : fatal error LNK1112: module machine type 'X64' conflicts with target machine type 'x86'

■ 环境

VC2019

Perl v5.28.1

构建目标 OpenSSL 1.1.1d

■ 构建命令(.bat)

同样的错误出现在“vcvars64.bat”中。

set PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build;%PATH%
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvarsx86_amd64.bat"

perl Configure no-asm --prefix=C:/openssl/build/win/x64 VC-WIN64A

nmake install

【问题讨论】:

    标签: windows openssl


    【解决方案1】:

    自己解决了。

    链接 x86 对象时发生错误,因为它是用 x86 构建后剩余的垃圾文件构建的。 再次解压OpenSSL的tgz后构建成功。

    【讨论】:

      【解决方案2】:

      我在为 python 构建 QCustomPlot2 时遇到了同样的问题。修复方法是删除 qcustomplot2 文件夹,然后再次解压缩 tar.gz ......无论我如何尝试构建它,剩下的垃圾都让我感到困惑。我尝试了所有适用于 Visual Studio 的开发人员工具,甚至交叉编译器.. 但是删除所有内容然后解压缩下载器存档是最好的解决方法。

      我有 x64 窗口...我在 Visual Studio 2019 中使用了 x64 本机工具 cmd 提示符。它构建完美,然后第一次尝试。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-11
        • 2021-03-31
        • 2011-08-09
        • 2019-10-20
        • 2016-12-29
        • 2021-10-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多