openssl - 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.
解决方案
看起来这是 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 在我的路径上的阶段,但我这样做并忽略了我继续并可以构建的警告。
推荐阅读
- python - 删除数据框中某列中特定级别对应的行
- python - 如何在我的 pydroid 上将 .tar.gz 类型的文件放在 python 的路径中
- arduino - 为什么我的程序在写入此流后会重置?
- python - 根据用户所在国家/地区显示时间
- twilio - Twilio JS SDK 无法获取调用的状态变化
- javascript - Django:将 JavaScript 函数加载到 HTML 模板
- javascript - ArcGIS JS - 如何在渲染之前通过针对另一个属性测试一个属性来设置多边形的样式?
- vue.js - 如何解决无法导入模块'@nuxt/builder'?
- makefile - Makefile 文件无法识别:文件格式无法识别
- loops - %0|%0 是如何工作的?