Как построить Perl с PERL_IMPLICIT_CONTEXT? - PullRequest
0 голосов
/ 23 октября 2018

Согласно perlguts :

Когда Perl создается с помощью PERL_IMPLICIT_CONTEXT, расширениям, которые вызывают любые функции в API Perl, необходимо каким-то образом передавать аргумент начального контекста.Главное, что вам нужно будет написать его так, чтобы расширение все еще компилировалось, когда Perl не был собран с включенным PERL_IMPLICIT_CONTEXT.

Как я могу собрать Perl с PERL_IMPLICIT_CONTEXT?И как я могу позже проверить, был ли установлен Perl с PERL_IMPLICIT_CONTEXT?

1 Ответ

0 голосов
/ 23 октября 2018

Как отмечает @Dada, в руководстве по сборке и установке для perl 5 содержится информация о том, как собрать Perl с PERL_IMPLICIT_CONTEXT.Параметр -A используется со сценарием Configure для добавления
-DPERL_IMPLICIT_CONTEXT к ccflags.Например, чтобы построить 5.28.0 с PERL_IMPLICIT_CONTEXT и установить в $HOME/localperl:

 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 с PERL_IMPLICIT_CONTEXT?Как отмечает @JGNI, можно использовать perl -V:

$ 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

В качестве альтернативы, вы можете получить доступ к информации о конфигурации Perl, используя модуль Config .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...