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:\MSYS\opt\perl-5.30.2-1-i686\usr\bin
运行perl出错时,下载msys2-base-i686-20190524.tar.xz
https://sourceforge.net/projects/msys2/files/Base/i686/msys2-base-i686-20190524.tar.xz/download
并这个包里所有的dll文件解压到D:\MSYS\opt\perl-5.30.2-1-i686\usr\bin目录下,这样正常运行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 就可以;

 

posted @ 2020-06-30 01:25  1CM  阅读(1155)  评论(0编辑  收藏  举报