如何使用PERL_IMPLICIT_CONTEXT构建Perl?

时间:2018-10-23 09:36:37

标签: perl

根据perlguts

  

使用Perl_IMPLICIT_CONTEXT构建Perl时,扩展会调用   Perl API中的任何函数都需要传递初始上下文   以某种方式争论。更重要的是,您将需要以这种方式编写   尚未构建Perl时扩展仍可编译的一种方式   启用PERL_IMPLICIT_CONTEXT。

如何使用PERL_IMPLICIT_CONTEXT构建Perl?以及以后如何检查已使用PERL_IMPLICIT_CONTEXT编译的Perl?

1 个答案:

答案 0 :(得分:4)

如@Dada所述,Build and Installation guide for perl 5中包含有关如何使用-A构建Perl的信息。 Configure选项与-DPERL_IMPLICIT_CONTEXT脚本一起使用,可将
ccflags添加到PERL_IMPLICIT_CONTEXT。例如,要使用$HOME/localperl构建5.28.0并安装在 wget https://www.cpan.org/src/5.0/perl-5.28.0.tar.gz tar -xzf perl-5.28.0.tar.gz cd perl-5.28.0 ./Configure -des -Dprefix=$HOME/localperl -Accflags="-DPERL_IMPLICIT_CONTEXT" make make test make install 中:

perlbrew

或者您可以使用perlbrew install perl-5.28.0 --as=5.28.0ic -Accflags="-DPERL_IMPLICIT_CONTEXT" perlbrew switch 5.28.0ic

perl -V

问题的第二部分:如何检查是否已使用PERL_IMPLICIT_CONTEXT编译已安装的Perl?如@JGNI所述,可以使用$ perl -V | grep PERL_IMPLICIT_CONTEXT config_args='-de -Dprefix=/home/hakon/perlbrew/perls/5.28.0ic -Dusedevel -Accflags=-DPERL_IMPLICIT_CONTEXT -Aeval:scriptdir=/home/hakon/perlbrew/perls/5.28.0ic/bin' ccflags ='-DPERL_IMPLICIT_CONTEXT -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' cppflags='-DPERL_IMPLICIT_CONTEXT -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include' PERL_IMPLICIT_CONTEXT

{{1}}

或者,您可以使用Config模块访问Perl配置信息。