OpenSSL NMAKE Неразрешенный внешний символ - PullRequest
1 голос
/ 07 ноября 2019

Я пытаюсь скомпилировать очень легкую версию OpenSSL со многими отключенными функциями.

Использование сообщения Сборка openssl только с RSA и AES Я успешно выполнил этап сборки, но у меня возникла проблема при запуске nmake.

В первый раз он запустился за несколько минут до сбоя. Теперь, когда я запускаю nmake, происходит сбой таким же образом без всего предыдущего текста. Вывод показан ниже.

D:\xxxxxxxx\openssl-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 Studio\2019\Community\VC\Tools\MSVC\14.23.28105\bin\HostX64\x64\nmake.exe" /                   depend && "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.23.28105\bin\HostX64\x64\nmake.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 test\evp_extra_test.exe.manifest DEL /F /Q test\evp_extra_test.exe.manifest
        link /nologo /debug /subsystem:console /opt:ref  /nologo /debug /out:test\evp_extra_test.exe @C:\Users\Jim\AppData\Local\Temp\nmBFB6.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

test\evp_extra_test.exe : fatal error LNK1120: 3 unresolved externals

NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.23.28105\bin\HostX64\x64\link.EXE"' : return code '0x460'

Stop.

NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.23.28105\bin\HostX64\x64\nmake.exe"' : return code '0x2'

Stop.

Я использую:

Windows 10

Пуск-> Visual Studio 2019-> x64 Командная строка собственных инструментов для VS 2019 (Запуск от имениАдминистратор)

OpenSSL версии 3.0.0 в соответствии с файлом VERSION. Скачано 20191107

Команда построения:

perl Конфигурирование VC-WIN64A Нет идеи Нет-Камелия Нет-нет-Нет-bf Нет-нет-нет-Нет-RC2 Нет-RC4 Нет-RC5no-md2 no-md4 no-palemd no-mdc2 no-dsa no-dh no-ec no-ecdsa no-ecdh no-sock no-ssl2 no-ssl3 no-err без двигателя no-hw no-asm

Заранее спасибо,

Джим

1 Ответ

2 голосов
/ 07 ноября 2019

Похоже, вы используете OpenSSL 3.0, которая еще не выпущена в разрабатываемой версии OpenSSL, которую вы (предположительно) загрузили из основной ветки git - именно там происходит вся активная разработка OpenSSL. Как ветвь разработки это следует рассматривать как нестабильное и не очень подходящее для любого «реального» использования. Похоже, что поддержка no-dsa в настоящее время не работает. Исправление здесь:

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

Один из способов заставить все это работать - это удалить "no-dsa" из строки конфигурации. Или вы можете применить исправление по указанному выше URL-адресу (или подождать пару дней, пока оно не будет объединено). Вероятно, лучший путь - это просто использовать стабильную версию OpenSSL. Последняя стабильная версия - 1.1.1d, которую вы можете скачать здесь как tar:

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

В качестве альтернативы, если у вас локально клонировано git-репо, вы можете проверить эту версию следующим образом:это:

$ git checkout OpenSSL_1_1_1d
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...