Я пытаюсь собрать OpenSSL 1.1.1f для Windows, используя:
- последняя версия Visual Studio 2019 (v16.4.6)
- Strawberry Perl (perl 5, версия 28, subversion 1 (v5.28.1), построенная для MSWin32-x86-multi-thread-64int)
- Windows 10 64-разрядная
Я следую инструкциям { ссылка }, в основном:
- Загрузите OpenSSL 1.1.1f с официального сайта
perl Configure VC-WIN32 no-asm --prefix=C:\some_dir\ --libdir=lib --openssldir=conf
- в
openssl-1.1.1e\makefile
меняю /MD
на /MT
- в консоле
x86 Native Tools Command Prompt for VS 2019
:
Сборка выполнена успешно, однако многие тесты не пройдены. Вот фрагмент из журнала:
test\recipes\01-test_abort.t .................... ok
test\recipes\01-test_sanity.t ................... Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests
test\recipes\01-test_symbol_presence.t .......... ok
test\recipes\01-test_test.t ..................... Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests
test\recipes\02-test_errstr.t ................... skipped: This is unsupported on MSYS/MinGW or MSWin32
test\recipes\02-test_internal_ctype.t ........... ok
test\recipes\02-test_lhash.t .................... Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests
test\recipes\02-test_ordinals.t ................. ok
test\recipes\02-test_stack.t .................... Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests
test\recipes\03-test_exdata.t ................... Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests
test\recipes\03-test_internal_asn1.t ............ ok
test\recipes\03-test_internal_chacha.t .......... ok
test\recipes\03-test_internal_curve448.t ........ ok
test\recipes\03-test_internal_ec.t .............. ok
test\recipes\03-test_internal_mdc2.t ............ Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests
Если я запускаю тесты в подробном режиме с использованием nmake test V=1
, раскрываются дополнительные подробности:
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests
test\recipes\04-test_bio_callback.t .............
1..1
OPENSSL_Uplink(798E0330,08): no OPENSSL_Applink
..\bio_callback_test.exe => 1
not ok 1 - running bio_callback_test
Почему тесты не пройдены, и как это исправить? Мне нужно собрать OpenSSL с /MT
Примечания:
- Если я не изменюсь
/MD
до /MT
тогда все работает как положено, и все тесты проходят - Работает сборка предыдущих версий OpenSSL, например 1.0.1, но начиная с 1.1.x они терпят неудачу