首页 > 解决方案 > openssl 1.1.1 配置失败

问题描述

我有一个关于 OpenSSL 配置失败的大问题。我安装了 ActiveState Perl (5.28) 和 NASM。然后我将 OpenSSL 存储库(分支 OpenSSL_1_1_1-stable)克隆到 C:/Respositories/openssl 目录中。我尝试为 VC-WIN32A 目标平台配置 openssl 构建。在两台计算机(Win10 OS)上的测试给了我相同的结果:

C:\Repositories\openssl>perl Configure VC-WIN32
Configuring OpenSSL version 1.1.1h-dev (0x10101080L) for VC-WIN32
Using os-specific seed configuration
Can't locate Win32/Console.pm in @INC (you may need to install the Win32::Console module) (@INC contains: C:/Repositories/openssl/util/perl C:/Perl64/site/lib C:/Perl64/lib) at C:/Perl64/lib/ActivePerl/Config.pm line 400.
Compilation failed in require at C:/Perl64/site/lib/ExtUtils/MakeMaker.pm line 9.
BEGIN failed--compilation aborted at C:/Perl64/site/lib/ExtUtils/MakeMaker.pm line 9.
Compilation failed in require at C:/Perl64/site/lib/IPC/Cmd.pm line 235.

标签: openssl

解决方案


看起来这是 ActiveState Perl 软件中的错误 - 该模块在提供的 Config.pm 文件中被引用,但未在发行版中提供,并且似乎无法构建或从中检索(免责声明- 我没有任何 Perl 经验)。

我注释掉了相关条目,因为它们似乎只设置屏幕属性:

# Prevent calling Win32::Console::DESTROY on a STDOUT handle
my $console;
sub _warn {
    my($msg) = @_;
    unless (-t STDOUT) {
    print "\n$msg\n";
    return;
    }
#    require Win32::Console;
#    unless ($console) {
#   $console = Win32::Console->new(Win32::Console::STD_OUTPUT_HANDLE());
#    }
    my($col,undef) = 80; #$console->Size;
    print "\n";
#    my $attr = $console->Attr;
#    $console->Attr($Win32::Console::FG_RED | $Win32::Console::BG_WHITE);
    for (split(/\n/, "$msg")) {
    $_ .= " " while length() < $col-1;
    print "$_\n";
    }
#    $console->Attr($attr);
    print "\n";
}

...这让我进入了 Perl 说我没有 nmake 在我的路径上的阶段,但我这样做并忽略了我继续并可以构建的警告。


推荐阅读