在cygwin上安装Perl模块(make失败)

在cygwin上安装Perl模块(make失败),perl,module,makefile,cygwin,Perl,Module,Makefile,Cygwin,我需要Digest::SHA1来获取我想要在cygwin上运行的Perl脚本。但是,我必须使用CPAN对其进行配置。在运行cpan[1]>install Digest::SHA1之前,一切似乎都很好。 事情继续,然后我得到了以下错误: /bin/sh:gcc-4:未找到命令 Makefile:327:目标'SHA1.o'的配方失败 make:[SHA1.o]错误127 GAAS/Digest-SHA1-2.13.tar.gz /usr/bin/make——不正常 “YAML”未安装,不会存储持久

我需要
Digest::SHA1
来获取我想要在cygwin上运行的Perl脚本。但是,我必须使用CPAN对其进行配置。在运行
cpan[1]>install Digest::SHA1
之前,一切似乎都很好。 事情继续,然后我得到了以下错误:

/bin/sh:gcc-4:未找到命令
Makefile:327:目标'SHA1.o'的配方失败
make:[SHA1.o]错误127
GAAS/Digest-SHA1-2.13.tar.gz
/usr/bin/make——不正常
“YAML”未安装,不会存储持久状态
运行make测试
没有成功的决策就无法进行测试 正在运行make安装
Make已返回错误状态,安装似乎不可能
执行此命令时失败:
GAAS/Digest-SHA1-2.13.tar.gz:制造编号


看来我必须安装gcc4。make错误不是因为它的路径,因为它设置正确(CPAN中的
o conf make
返回
/usr/bin/make
,并且我安装了
make
的二进制文件)。不幸的是,cygwin没有提供gcc4包(它被标记为一个过时的包)。有没有解决办法?或者有没有一种方法可以在cygwin下编译gcc4,因为在
Makefile
中简单地将
gcc-4
更改为
gcc
不起作用。

通常,您必须使用与编译Perl相同的XS编译器。你可以试着强迫你拥有的人,看看会发生什么:

cpan> look Digest::SHA1
Digest-SHA1-2.13$ perl Makefile.PL CC=/usr/bin/gcc LD=/usr/bin/gcc
Digest-SHA1-2.13$ make ; make test ; make install

通常,必须使用与编译Perl相同的XS编译器。你可以试着强迫你拥有的人,看看会发生什么:

cpan> look Digest::SHA1
Digest-SHA1-2.13$ perl Makefile.PL CC=/usr/bin/gcc LD=/usr/bin/gcc
Digest-SHA1-2.13$ make ; make test ; make install

添加
perl Makefile.PL CC=/usr/bin/gcc
对我来说不起作用,因为Makefile还包含一个简单的无别名的
gcc-4
(模板工具包的Makefile)

我只是用 cp/usr/bin/gcc/usr/bin/gcc-4


可能
ln
也可以工作。

添加
perl Makefile.PL CC=/usr/bin/gcc
对我不起作用,因为Makefile还包含一个简单的无别名的
gcc-4
(模板工具包的Makefile)

我只是用 cp/usr/bin/gcc/usr/bin/gcc-4


可能
ln
也能起作用。

我在目录中放了
cd
,然后运行
perl Makefile.PL CC=/usr/bin/gcc
。然后编写了
Makefile
,MYMETA.yml也编写了
makeinstall
为我提供了以下输出:。有什么想法吗?链接器也需要更改。我已经更新了上面的答案。请同时运行
进行测试
,这很重要!它会马上告诉你这个小实验是否有效。如果它有效,您可以将其永久化。我已经在目录中运行了
cd
,然后运行了
perl Makefile.PL CC=/usr/bin/gcc
。然后编写了
Makefile
,MYMETA.yml也编写了
makeinstall
为我提供了以下输出:。有什么想法吗?链接器也需要更改。我已经更新了上面的答案。请同时运行
进行测试
,这很重要!它会马上告诉你这个小实验是否有效。如果成功了,你可以把它永久化。