在构建模块时如何覆盖perl的编译标志?

时间:2009-10-20 01:49:36

标签: perl build perl-module makemaker

构建Perl模块时,ExtUtils :: MakeMaker使用Config.pm中定义的标志(参见perldoc Config)获取ccflags和ldflags等值。

如何覆盖这些值(缺少编辑Makefile.PL)?

perl Makefile.PL ldflags=<options> 

似乎不起作用。

上下文: 我试图在OS X 10.6上编译Term :: Readline :: Gnu。 默认的OS X perl是一个通用的二进制文件,因此有像-arch i386 -arch ppc等的ccflags 另一方面,我的Gnu Readline(6.0)版本仅从-arch i386的源代码编译而来。因此,它不包含试图使用-arch ppc链接到它的模块的预期符号。

2 个答案:

答案 0 :(得分:2)

通常,尝试覆盖Config.pm中的设置是徒劳的。想要更改它们的更正常的原因是在使用非GNU编译器编译Perl但是您想要使用GCC的机器上更改编译器。这很难做到,使用您选择的编译器重建Perl,安装所有辅助模块,然后使用构建您选择的新模块而不是尝试打击“系统”,这简直太简单了。

因此,您可以执行以下两项操作之一 - 使用Perl将使用的相同选项构建GNU Readline库,或使用用于构建GNU Readline的选项构建Perl。如果你重视你的机器和头上的头发,不建议弯曲一个以满足另一个(请不要用机器那么难 - 这是你应该感到沮丧的软件,而不是硬件; Mac很好!)。

在这两个选项中,重建GNU Readline可能更容易 - 它更小,附件更少。

答案 1 :(得分:0)

文档Hintsfile Support部分提供的信息可能有用,但我还没有尝试过。

相关问题