MSYS 编译 openssl-3.0.0-alpha4 发生错误时解决方法

Posted nlsoft

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MSYS 编译 openssl-3.0.0-alpha4 发生错误时解决方法相关的知识,希望对你有一定的参考价值。

******************************************************************************
This perl implementation doesn‘t produce Unix like paths (with forward slash
directory separators).  Please use an implementation that matches your
building platform.

This Perl version: 5.18.0 for MSWin32-x86-multi-thread-64int
******************************************************************************
出现这个错误,需要MSYS2的perl
https://sourceforge.net/projects/msys2/files/REPOS/MSYS2/i686/perl-5.30.2-1-i686.pkg.tar.xz.sig/download
解压到 D:MSYSoptperl-5.30.2-1-i686usrbin
运行perl出错时,下载msys2-base-i686-20190524.tar.xz
https://sourceforge.net/projects/msys2/files/Base/i686/msys2-base-i686-20190524.tar.xz/download
并这个包里所有的dll文件解压到D:MSYSoptperl-5.30.2-1-i686usrbin目录下,这样正常运行perl

./Configure mingw --prefix=/usr/local
正常结束之后修改 configdata.pm 和 Makefile
/usr/bin/perl      --->  perl

make depend && make && make install 出现一下错误
make[1]: execvp: ar: Bad file number
make[1]: *** [libcrypto.a] Error 127
make[1]: Leaving directory `/build/libs/openssl-3.0.0-alpha4‘
make: *** [build_sw] Error 2
错误原因是 ar 命令行太长

make -n>make.txt
查找 "ar r libcrypto.a"
把所有的 *.obj 文本写入 crypto-all.obj 文件中
利用 ar @option - read options from file
ar r libcrypto.a @crypto-all.obj
ranlib libcrypto.a

这样可以生成 libcrypto.a 
然后make && make install 就可以;

 

以上是关于MSYS 编译 openssl-3.0.0-alpha4 发生错误时解决方法的主要内容,如果未能解决你的问题,请参考以下文章

win10下使用msys+vs2019编译ffmpeg源码

win10下使用msys+vs2019编译ffmpeg源码

Msys 编译 C 代码

msys git 编译错误

Mingw+MSYS 中的 libevent 静态编译错误

WINDOWS使用msys2编译ffmpeg(编译成功,无法使用)