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

如何使用plenv或perlbrew将编译选项传递给perl,第1张

概述我有一台机器在 Windows上使用Ubuntu上的Bash运行Windows 10.它使用某种没有适当硬链接支持的FUSE文件系统. 因此,典型的perl compilation fails.如果我想编译,我需要做: echo "dont_use_nlink='define'" >> Policy.sh./Configure -desmakemake install 我理想的是能够使用pe 我有一台机器在 Windows上使用Ubuntu上的Bash运行windows 10.它使用某种没有适当硬链接支持的FUSE文件系统.

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

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

我理想的是能够使用perlbrew或plenv来管理我的perls并将dont_use_nlink参数传递给我构建的任何perl.有没有办法做到这一点?

解决方法 幸运的是,它看起来像 underlying issue in Win10 WSL is fixed,并且(希望)很快就会发布.

正如MichIElB所指出的那样,-A或-D似乎应该完成这一点,但是从我的一些测试中可以看出,当-de也被传递时,perl的Configure不会尊重-A或-D参数(见“usage” in perl’s metaconfig的重要性)那些args).尽管在生成的config.sh的args列表中清楚地看到了正确形成的-A和-D标志,但dont_use_nlink永远不会被添加.

碰巧,perlbrew将那些作为默认值传递,除非您使用special PERLBREW_CONFIGURE_FLAGS environment variable.

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

脚步:

>运行将失败的perlbrew安装,例如:

perlbrew安装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 = ‘定义’
doubleinfbytes =’0x00,0x00,0xf0,0x7f’

>运行perlbrew install,但设置一个环境变量,该变量将导致“-f”传递给新的perl的Configure脚本:

PERLBREW_CONfigURE_FLAGS =“ – de -f /home/USERname/config_dont_use_nlink.sh”perlbrew install perl-5.24.0

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

总结

以上是内存溢出为你收集整理的如何使用plenv或perlbrew将编译选项传递给perl全部内容,希望文章能够帮你解决如何使用plenv或perlbrew将编译选项传递给perl所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1269959.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-08
下一篇2022-06-08

发表评论

登录后才能评论

评论列表(0条)

    保存