OpenSSL NMAKE未解析的外部符号



我正在尝试编译一个非常轻的OpenSSL版本,其中禁用了许多功能。

只使用RSA和AES的构建后openssl,我已经成功地运行了构建步骤,但在运行nmake时遇到了问题。

第一次它运行了几分钟就失败了。现在,当我运行nmake时,它以同样的方式失败,没有所有以前的文本。输出如下所示。

D:xxxxxxxxopenssl-master>nmake
Microsoft (R) Program Maintenance Utility Version 14.23.28106.4
Copyright (C) Microsoft Corporation.  All rights reserved.
"C:Program Files (x86)Microsoft Visual Studio2019CommunityVCToolsMSVC14.23.28105binHostX64x64nmake.exe" /                   depend && "C:Program Files (x86)Microsoft Visual Studio2019CommunityVCToolsMSVC14.23.28105binHostX64x64nmake.exe" /                   _all
Microsoft (R) Program Maintenance Utility Version 14.23.28106.4
Copyright (C) Microsoft Corporation.  All rights reserved.

Microsoft (R) Program Maintenance Utility Version 14.23.28106.4
Copyright (C) Microsoft Corporation.  All rights reserved.
IF EXIST testevp_extra_test.exe.manifest DEL /F /Q testevp_extra_test.exe.manifest
link /nologo /debug /subsystem:console /opt:ref  /nologo /debug /out:testevp_extra_test.exe @C:UsersJimAppDataLocalTempnmBFB6.tmp
evp_extra_test-bin-evp_extra_test.obj : error LNK2019: unresolved external symbol d2i_DSAPrivateKey referenced in function load_example_dsa_key
evp_extra_test-bin-evp_extra_test.obj : error LNK2019: unresolved external symbol EVP_PKEY_set1_DSA referenced in function load_example_dsa_key
evp_extra_test-bin-evp_extra_test.obj : error LNK2019: unresolved external symbol DSA_free referenced in function load_example_dsa_key
testevp_extra_test.exe : fatal error LNK1120: 3 unresolved externals
NMAKE : fatal error U1077: '"C:Program Files (x86)Microsoft Visual Studio2019CommunityVCToolsMSVC14.23.28105binHostX64x64link.EXE"' : return code '0x460'
Stop.
NMAKE : fatal error U1077: '"C:Program Files (x86)Microsoft Visual Studio2019CommunityVCToolsMSVC14.23.28105binHostX64x64nmake.exe"' : return code '0x2'
Stop.

我正在使用:

Windows 10

开始->Visual Studio 2019->VS 2019的x64本机工具命令提示符(以管理员身份运行(

根据version文件的OpenSSL 3.0.0版本。下载20191107

构建命令:

perl配置VC-WIN64A没有想法没有茶花没有种子没有bf没有铸造没有des no-rc2 no-rc4 no-rc5 no-md2 no-md4 no ripemd no-mdc2 no dsa no dh no ec no ecdsa no ecdh no sock no-ssl2 no-ssl3 no err no engine no hw no asm

提前感谢

Jim

您似乎在使用OpenSSL 3.0,这是您(可能(从git master分支下载的OpenSSL的尚未发布的仍在开发中的版本,这是所有活动的OpenSSL开发的地方。作为一个开发分支,这应该被认为是不稳定的,不适合任何"实际"使用。目前看来,无dsa支持已断开。修复方法在这里:

https://github.com/openssl/openssl/pull/10375

让事情正常工作的一种方法是从配置行中删除"no-dsa"。或者你可以在上面的URL上应用修复程序(或者等待几天才能合并(。也许最好的方法是使用稳定版本的OpenSSL。最新的稳定版本是1.1.1d,你可以从这里下载为tar:

https://www.openssl.org/source/

或者,如果您在本地克隆了git-reo,那么您可以这样检查该版本:

$ git checkout OpenSSL_1_1_1d

最新更新