【问题标题】:How to tell CPAN about path to make and cc如何告诉 CPAN 关于制作和抄送的路径
【发布时间】:2012-02-02 20:00:06
【问题描述】:

在带有 opencsw.org 包的 Solaris 上运行 Perl 5.10 CPAN,包中的 Makefile.PL 找不到正确的路径和 cc (gcc)。

我找到了make的路径并将其设置为gmake,但我找不到cc的任何设置。

我以为我曾经在 CPAN/Config.pm 中设置过此设置(或使用 o config ...),但无法再找到任何设置,也没有足够的耐心涉足灌木丛以找出如此基本的设置事情搞定了。

有人知道吗?

【问题讨论】:

    标签: perl cpan solaris-10


    【解决方案1】:

    cpan 不需要知道gcc 或等价物在哪里,因为直接调用它不是cpan 的工作。通常是Makefile.PLBuild.PL 需要知道这一点,并且它通常会接受编译器用作命令行参数。如果您将 PERLMAINCC=/compiler/to/use 添加到 o conf makepl_arg 应该这样做。

    【讨论】:

    • Config.pm 是设置它的地方,它将决定每个 Makefile.PL 看到的内容。但是你回答了我的问题。谢谢!
    【解决方案2】:

    扩展需要使用与 Perl 本身相同的工具来构建,Perl 会记住这些工具是什么。

    如果您后来删除或移动了它们,那可能是个问题。

    但更有可能的是,您还没有从提供它们的发行版中安装软件包。安装缺少的软件包。

    【讨论】:

    • 我在 Solaris 10 上,我的发行版是 opencsw.org。 Perl 5.8 来自最初的 Solaris 软件包,但我路径中的第一个 Perl 5.10 来自 OpenCSW。我还安装了 gcc 和 gmake,可以从命令行运行它们。
    【解决方案3】:

    cpan_home/CPAN/Config.pm(或通过o conf):

    'make_arg' => q[CC=/path/to/c-compiler]
    

    【讨论】:

    • 在尝试构建 Net::SSLeay 的集群环境中遇到此问题,其中系统 cc 太旧且不支持 -fstack-protector-strong 选项。在这种情况下,将make_arg 设置为CC=gcc(我的$PATH 中的较新版本)是正确的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    • 2010-11-12
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多