gpt4 book ai didi

perl - 如何使用 pleenv 或 perlbrew 将编译选项传递给 perl

转载 作者:行者123 更新时间:2023-12-04 21:08:42 24 4
gpt4 key购买 nike

我有一台在 Windows 上的 Ubuntu 上运行带有 Bash 的 Windows 10 的机器。它使用某种没有适当硬链接(hard link)支持的 FUSE 文件系统。

因此,典型的 perl compilation fails .如果我想编译,我需要做:

echo "dont_use_nlink='define'" >> Policy.sh
./Configure -des
make
make install

我理想中想要的是能够使用 perlbrewplenv管理我的 perls 并通过 dont_use_nlink我构建的任何 perl 的参数。有没有办法做到这一点?

最佳答案

幸运的是,它看起来像 underlying issue in Win10 WSL is fixed ,并将(希望)很快发布。

正如 MichielB 指出的那样,-A 或 -D 似乎他们应该做到这一点,但从我的一些测试看来,perl 的 Configure不尊重 -A-D -de 时的参数也通过了(参见 "usage" in perl's metaconfig 了解这些参数的意义)。尽管在生成的 config.sh 的 args 列表中清楚地看到格式正确的 -A 和 -D 标志,但从未添加 dont_use_nlink。

碰巧的是,除非您使用 special PERLBREW_CONFIGURE_FLAGS environment variable,否则 perlbrew 会将这些作为默认值传递。 .

但是,有一种解决方法。您可以使用 PERLBREW_CONFIGURE_FLAGS使用 -f传递我们自己的配置文件。我们可以使用由失败的“perlbrew install”运行生成的最正确的 config.sh,然后对其进行调整并传递它。

脚步:

  • 运行将失败的 perlbrew 安装,例如:
  • perlbrew install perl-5.24.0
  • 将生成的 config.sh 文件复制到某处以供修改和重用:
  • cp /home/USERNAME/perl5/perlbrew/build/perl-5.24.0/config.sh ~/config_dont_use_nlink.sh
  • 编辑文件并插入 dont_use_nlink='define' .如果您要整理并按字母顺序归档,它将在 dlsrc 和 doubleinfbytes 之间:
  • dlsrc='dl_dlopen.xs'
    dont_use_nlink='define'
    doubleinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f'
  • 运行 perlbrew install,但设置一个环境变量,将“-f”传递给新的 perl 的配置脚本:
  • PERLBREW_CONFIGURE_FLAGS="-de -f /home/USERNAME/config_dont_use_nlink.sh" perlbrew install perl-5.24.0

    这在 Win10 build 14393 上为我编译了一个大部分干净的 WSL,并且几乎所有测试都通过了(其余的看起来像是已经提交了 WSL 错误的东西)。

    关于perl - 如何使用 pleenv 或 perlbrew 将编译选项传递给 perl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39732651/

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