【问题标题】:Installing Perl module on cygwin (make failed)在 cygwin 上安装 Perl 模块(make 失败)
【发布时间】:2013-08-22 11:57:09
【问题描述】:

我需要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 test
没有成功就无法测试 运行 make install
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 module makefile cygwin


    【解决方案1】:

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

    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
    

    【讨论】:

    • 我在目录中有cd,然后运行perl Makefile.PL CC=/usr/bin/gcc。然后Makefile 被写入,MYMETA.yml 也是如此。 make install 给了我以下输出:pastebin.com/jgnKLnXB。有什么想法吗?
    • 链接器也需要更改。我已经更新了上面的答案。也请运行make test,这很重要!它会立即告诉您这个小实验是否有效。如果有效,您可以change the CPAN configuration makepl_arg and mbuildpl_arg 将其永久化。
    【解决方案2】:

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

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

    ln 可能也可以。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-16
      • 2013-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-30
      • 1970-01-01
      相关资源
      最近更新 更多