gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 15:49:12 25 4
gpt4 key购买 nike

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

最佳答案

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

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

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

关于perl - 构建模块时如何覆盖 perl 的编译标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1592066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com