2009-10-20 89 views
6

构建Perl模块时ExtUtils :: MakeMaker使用Config.pm中定义的标记(请参阅perldoc配置)获取诸如ccflags和ldflags等值。如何在构建模块时重写perl的编译标志?

如何覆盖这些值(短编辑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链接到它的模块的预期符号。

+0

尝试在EUMM邮件列表中提问此问题:http://www.perlfoundation.org/perl5/index.cgi?extutils_makemaker – 2009-10-20 11:21:30

回答

2

一般来说,试图覆盖Config.pm中的设置是徒劳的。想要更改它们的更常见的原因是在一台使用非GNU编译器编译Perl的机器上更改编译器,但是您想使用GCC。这很难做到,用你选择的编译器重新编译Perl,安装所有的辅助模块,然后使用构建你选择的新模块,而不是试图与“系统”作斗争就简单多了。

因此,您可以执行以下两件事之一 - 使用与Perl相同的选项构建GNU Readline库,或使用用于构建GNU Readline的选项构建Perl。如果你重视你的机器和你头上的头发,不要试图弯曲一个去接触另一个,以免遇到另一个问题(请不要直接碰到困难的机器 - 这是你应该感到沮丧的软件,而不是硬件; Mac的很好!)。

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

0

文档Hintsfile Support部分提供的信息可能是相关的,尽管我没有尝试过。