【问题标题】:"/bin/sh: C:Perl64binperl.exe: command not found" on Windows 10Windows 10 上的“/bin/sh:C:Perl64binperl.exe:找不到命令”
【发布时间】:2016-12-03 13:35:10
【问题描述】:

我正在尝试使用 Code::blocks 和 Mingw 在 Windows 10 64 位机器上构建 OpenSSL。我已经安装了 ActivePerl 和 MSYS。我可以执行

perl Configure mingw

没有错误。问题在于执行 MAKE 命令。无论我使用的是 windows 命令提示符还是 MSYS,我总是会收到以下错误

C:\DiscoD\openssl>make CC=i586-mingw32msvc-gcc RANLIB=i586-mingw32msvc-ranlib
C:\Perl64\bin\perl.exe "-I." -Mconfigdata "util\dofile.pl" \
            "-oMakefile" crypto\include\internal\bn_conf.h.in > crypto\include\internal\bn_conf.h
/bin/sh: C:Perl64binperl.exe: command not found
make: *** [crypto\include\internal\bn_conf.h] Error 127

似乎从 Perl.exe 路径中删除了反斜杠,因此脚本找不到 C:/Perl64/bin/perl.exe。怎么解决?谢谢

【问题讨论】:

  • 您使用的是哪个版本的 OpenSSL?运行Configure 后,执行grep -IR 'C:Perl64binperl.exe' *。然后,对于每个命中(应该是 Makefiles),执行sed -i 's|C:Perl64binperl.exe|C:/Perl64/bin/perl.exe|g' <file>。您可能需要使用 // 转义斜线。
  • OpenSSL 版本是最后编号的 1.1.2。任何文件都包含 C:Perl64binperl.exe,因为路径是建立 dinamycall 的,我知道是什么文件给出了错误。
  • OpenSSL 还没有 1.1.2 版本。您很可能使用 1.1.0 或 1.0.2。
  • 对不起,是1.0.2

标签: windows perl path openssl mingw


【解决方案1】:

您应该会从 OpenSSL 发行版中看到此建议:

https://github.com/openssl/openssl/blob/master/NOTES.PERL#L30

Perl 在 Windows 上的注意事项

有许多构建目标可以被视为“Windows”。 事实上,有针对 VisualStudio C 的 VC-* 配置,以及 MinGW 和 Cygwin。关键建议是使用“匹配”Perl, 与构建环境匹配的一种。例如,如果您要构建 在 Cygwin 上一定要使用 Cygwin 包管理器来安装 Perl。 对于 MSYS 构建,请使用 MSYS 提供的 Perl。对于 VC-* 构建,我们 推荐 ActiveState Perl,可从 http://www.activestate.com/ActivePerl.

在进行 MSYS/MinGW 构建时,您应该确保已安装 MSYS perl(并且在您的路径上优先于 ActiveState 版本)。然后再次尝试构建。

【讨论】:

  • 谢谢,我会尝试从 mingw MSYS 更改为 perl MSYS。
【解决方案2】:

我遇到了同样的问题,发现打开 Makefile 并搜索“PERL=”发现行“PERL=C:\MinGW\msys\1.0\bin\perl.exe”。将单反斜杠替换为双反斜杠(即“PERL=C:\\MinGW\\msys\\1.0\\bin\\perl.exe”)更正了问题。单正斜杠也有效。

【讨论】:

    猜你喜欢
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    • 2018-03-12
    • 2018-05-27
    • 1970-01-01
    • 2017-05-06
    • 2018-02-06
    • 2015-07-21
    相关资源
    最近更新 更多