cygwin编译安装软件缺少头文件解决办法

本文详细介绍了在 Cygwin 环境下编译安装 Perl 软件 Digest::MD4 时遇到的头文件缺失问题及解决办法。通过查找并安装相应的模块,成功解决了编译中断的错误。

cygwin编译安装软件缺少头文件解决办法

问题现象

安装perl软件Digest::MD4

#cd Digest-MD4-1.9/
#perl Makefile.PL
Checking if your kit is complete…
Looks good
Generating a Unix-style Makefile
Writing Makefile for Digest::MD4
Writing MYMETA.yml and MYMETA.json
#make install
cp MD4.pm blib/lib/Digest/MD4.pm
Running Mkbootstrap for MD4 ()
chmod 644 “MD4.bs
“/usr/bin/perl.exe” -MExtUtils::Command::MM -e ‘cp_nonempty’ – MD4.bs blib/arch /auto/Digest/MD4/MD4.bs 644
“/usr/bin/perl.exe” “/usr/share/perl5/5.26/ExtUtils/xsubpp” -typemap ‘/usr/shar e/perl5/5.26/ExtUtils/typemap’ -typemap ‘/drives/d/Cache/MobaXterm/slash/home/mo baxterm/excel/Digest-MD4-1.9/typemap’ MD4.xs > MD4.xsc
mv MD4.xsc MD4.c
gcc -c -DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -D_GNU_SOURCE -ggdb -O2 -pipe -Wall -Werror=format-security -D_FORTIFY_SOURCE=2 -fstack-protector-strong --par am=ssp-buffer-size=4 -fdebug-prefix-map=/mnt/share/maint/perl.x86/build=/usr/src /debug/perl-5.26.2-1 -fdebug-prefix-map=/mnt/share/maint/perl.x86/src/perl-5.26. 2=/usr/src/debug/perl-5.26.2-1 -fwrapv -fno-strict-aliasing -DUSEIMPORTLIB -O3 -DVERSION=“1.9” -DXS_VERSION=“1.9” “-I/usr/lib/perl5/5.26/i686-cygwin-thre ads-64int/CORE” MD4.c
In file included from /usr/lib/perl5/5.26/i686-cygwin-threads-64int/CORE/op.h:65 4:0,
from /usr/lib/perl5/5.26/i686-cygwin-threads-64int/CORE/perl.h: 3921,
from MD4.xs:41:
/usr/lib/perl5/5.26/i686-cygwin-threads-64int/CORE/reentr.h:104:26: 致命错误:cr ypt.h:No such file or directory
#include <crypt.h>
^
编译中断。
make: *** [Makefile:328:MD4.o] 错误 1

问题解决

根据问题提示,是缺少头文件,但是如何确定该头文件在哪个模块中?
从网上找到解决办法,在cygwin网站上搜索该头文件,会出现所有包含该头文件的模块,从中选取最优可能的模块安装到cygwin上,再尝试安装上述perl模块。
网址为: https://cygwin.com/cgi-bin2/package-grep.cgi

题外话

安装cygwin软件时,由于国内原因,无法从mirrors.kernel.org上下载安装包,所以需要从其它国内的镜像上下载。
由于我使用的是集成了cygwin的MobaXterm,所以这里就需要修改slash/bin/apt-cyg中的mirror字段到mirrors.163.com

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值