6

在构建 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 链接到它的模块的预期符号。

4

2 回答 2

2

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

因此,您可以做以下两件事之一 - 使用 Perl 将使用的相同选项构建您的 GNU Readline 库,或者使用用于构建 GNU Readline 的选项构建您的 Perl。如果您重视您的机器和头上的头发,则不建议尝试弯曲一个以与另一个相遇(请不要用力撞击机器 - 这是您应该感到沮丧的软件,而不是硬件;Mac 很好!)。

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

于 2009-10-20T02:53:58.283 回答
0

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

于 2009-10-20T02:12:43.907 回答