InglêsFrancêsEspanhol

Ad


favicon do OnWorks

h2xs - online na nuvem

Execute h2xs no provedor de hospedagem gratuita OnWorks no Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

Este é o comando h2xs que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

PROGRAMA:

NOME


h2xs - converte arquivos de cabeçalho .h C em extensões Perl

SINOPSE


H2xs [OPÇÕES ...] [arquivo de cabeçalho ... [extra_libraries]]

H2xs -h|-?|--Socorro

DESCRIÇÃO


H2xs constrói uma extensão Perl a partir de arquivos de cabeçalho C. A extensão incluirá funções
que pode ser usado para recuperar o valor de qualquer instrução #define que estava no cabeçalho C
arquivos.

A nome do módulo será usado para o nome da extensão. Se module_name não for
fornecido, então o nome do primeiro arquivo de cabeçalho será usado, com o primeiro caractere
capitalizado.

Se a extensão precisar de bibliotecas extras, elas devem ser incluídas aqui. A extensão
Makefile.PL se encarregará de verificar se as bibliotecas realmente existem e como elas
deve ser carregado. As bibliotecas extras devem ser especificadas no formato -lm -lposix, etc,
assim como na linha de comando cc. Por padrão, o Makefile.PL irá pesquisar através do
caminho da biblioteca determinado pelo Configure. Esse caminho pode ser aumentado incluindo argumentos
do formulário -L / outro / biblioteca / caminho no argumento de bibliotecas extras.

Apesar de seu nome, H2xs também pode ser usado para criar um esqueleto de módulo Perl puro. Veja o
-X opção.

OPÇÕES


-A, --omit-autoload
Omita todos os recursos de carregamento automático. Este é o mesmo que -c mas também remove o
declaração "use AutoLoader" do arquivo .pm.

-B, --versão beta
Use um número de versão de estilo alfa / beta. Faz com que o número da versão seja "0.00_01", a menos que
-v é especificado.

-C, --omitir-alterações
Omite a criação do Alterações arquivo e adiciona uma seção de HISTÓRICO ao modelo POD.

-F, --cpp-flags=adicionar sinalizadores
Sinalizadores adicionais para especificar para o pré-processador C ao escanear o cabeçalho para a função
declarações. Grava essas opções no Makefile.PL demasiado.

-M, --func-máscara=regular expressão
seleciona funções / macros para processar.

-O, --overwrite-ok
Permite que um diretório de extensão pré-existente seja sobrescrito.

-P, --omit-pod
Omita a seção de stub POD gerada automaticamente.

-X, --omitir-XS
Omita a parte XS. Usado para gerar um módulo Perl puro esqueleto. "-c" e "-f" são
habilitado implicitamente.

-a, --gen-acessores
Gere um método acessador para cada elemento de structs e uniões. O gerado
os métodos são nomeados após o nome do elemento; retornará o valor atual do
elemento se chamado sem argumentos adicionais; e irá definir o elemento para o
valor fornecido (e retornar o novo valor) se chamado com um argumento adicional.
Estruturas incorporadas e uniões são retornadas como um ponteiro em vez de o
estrutura, para facilitar chamadas em cadeia.

Todos esses métodos se aplicam ao tipo Ptr para a estrutura; além disso, dois métodos
são construídos para o próprio tipo de estrutura, "_to_ptr" que retorna um tipo Ptr
apontando para a mesma estrutura, e um "novo" método para construir e retornar um novo
estrutura, inicializada com zeros.

-b, --versão-compat=versão
Gera um arquivo .pm que é compatível com as versões anteriores do perl especificado.

Para versões <5.6.0, as alterações são.
- sem uso de 'nosso' (usa 'usar vars' em vez disso)
- sem 'avisos de uso'

Especificar uma versão de compatibilidade superior à versão do perl que você está usando para
executar H2xs não terá efeito. Se h2xs não for especificado, o padrão será a compatibilidade com
a versão do perl que você está usando para executar o H2xs.

-c, --omit-constante
Omita "constant ()" do arquivo .xs e o "AUTOLOAD" especializado correspondente do
arquivo .pm.

-d, --depuração
Ative a depuração de mensagens.

-e, --omit-enums=[regular expressão]
If regular expressão não for fornecido, pule todas as constantes que são definidas em um C
enumeração. Caso contrário, pule apenas as constantes que são definidas em um enum cujo
nome combina regular expressão.

Como regular expressão é opcional, certifique-se de que esta opção seja seguida por em
pelo menos uma outra opção se você omitir regular expressão e tem alguns argumentos pendentes
como nomes de arquivo de cabeçalho. Isso está ok:

h2xs -e -n Module :: Foo foo.h

Isso não está certo:

h2xs -n Module :: Foo -e foo.h

No último, foo.h é considerado regular expressão.

-f, --força
Permite que uma extensão seja criada para um cabeçalho, mesmo se esse cabeçalho não for encontrado em
padrão inclui diretórios.

-g, --global
Inclui código para armazenar com segurança dados estáticos no arquivo .xs. Extensões que não
fazer uso de dados estáticos pode ignorar esta opção.

-h, -?, --Socorro
Imprima o uso, ajuda e versão para este h2xs e saia.

-k, --omit-const-func
Para argumentos de função declarados como "const", omita o atributo const na
Código XS.

-m, --gen-amarrado-var
experimental: para cada variável declarada no (s) arquivo (s) de cabeçalho, declare um perl
variável com o mesmo nome magicamente ligada à variável C.

-n, --nome=nome do módulo
Especifica um nome a ser usado para a extensão, por exemplo, -n RPC :: DCE

-o, --opaco-re=regular expressão
Use o tipo de dados "opaco" para os tipos C correspondidos pela expressão regular, mesmo que
esses tipos são "typedef" -equivalentes aos tipos de mapas de tipos. Não deve ser usado
sem -x.

Isso pode ser útil, uma vez que, digamos, tipos que são equivalentes a "typedef" a inteiros podem
representam manipuladores relacionados ao sistema operacional, e pode-se querer trabalhar com esses identificadores no modo OO,
como em "$ handle-> do_something ()". Use "-o." se você quiser lidar com todos os
Tipos "typedef" ed como tipos opacos.

O tipo para corresponder é caiado de branco (exceto para vírgulas, que não têm espaço em branco antes
e vários "*" que não têm espaço em branco entre eles).

-p, --remove-prefixo=prefixo
Especifique um prefixo que deve ser removido dos nomes das funções Perl, por exemplo,
-p sec_rgy_ Isso configura o XS PREFIXO palavra-chave e remove o prefixo das funções
que são carregados automaticamente por meio do mecanismo "constant ()".

-s, --const-subs=sub1, sub2
Crie uma sub-rotina perl para as macros especificadas em vez de autoload com o
constante() sub-rotina. Presume-se que essas macros tenham um tipo de retorno de carbonizar *,
por exemplo, -s sec_rgy_wildcard_name, sec_rgy_wildcard_sid.

-t, --tipo padrão=tipo
Especifique o tipo interno que o constante() mecanismo usa para macros. O padrão
é IV (número inteiro com sinal). Atualmente, todas as macros encontradas durante a verificação do cabeçalho
processo será assumido como tendo este tipo. Versões futuras de "h2xs" podem ganhar o
capacidade de fazer suposições fundamentadas.

--use-novos-testes
Quando --versão-compat (-b) estiver presente, os testes gerados usarão "Test :: More"
em vez de "Teste", que é o padrão para versões anteriores a 5.6.2. "Test :: More" irá
ser adicionado a PREREQ_PM no "Makefile.PL" gerado.

--use-velhos-testes
Forçará a geração do código de teste que usa o módulo "Teste" mais antigo.

--skip-exportador
Não use "Exportador" e / ou exporte qualquer símbolo.

--skip-ppport
Não use "Devel :: PPPort": sem portabilidade para uma versão anterior.

--skip-autoloader
Não use o módulo "AutoLoader"; mas mantenha o constante() função e "sub
AUTOLOAD "para constantes.

--skip-estrito
Não use o pragma "estrito".

--skip-avisos
Não use o pragma "avisos".

-v, --versão=versão
Especifique um número de versão para esta extensão. Este número de versão é adicionado ao
modelos. O padrão é 0.01 ou 0.00_01 se "-B" for especificado. A versão
especificado deve ser numérico.

-x, --autogen-xsubs
Gere XSUBs automaticamente com base nas declarações de função no arquivo de cabeçalho. o
o pacote "C :: Scan" deve ser instalado. Se esta opção for especificada, o nome do
o arquivo de cabeçalho pode ser semelhante a "NAME1, NAME2". Neste caso, NAME1 é usado em vez do
string especificada, mas XSUBs são emitidos apenas para as declarações incluídas no arquivo
NOME2.

Observe que alguns tipos de argumentos / valores de retorno para funções podem resultar em
XSUB-declarations / typemap-entries que precisam de edição manual. Esses podem ser objetos que
não pode ser convertido de / para um ponteiro (como "long long"), ponteiros para funções ou
matrizes. Veja também a seção sobre "LIMITAÇÕES de -x".

EXEMPLOS


# Comportamento padrão, a extensão é Rusers
h2xs rpcsvc / rusers

# O mesmo, mas a extensão é RUSERS
h2xs -n RUSERS rpcsvc / rusers

# A extensão é rpcsvc :: rusers. Ainda encontra
h2xs rpcsvc :: rusers

# A extensão é ONC :: RPC. Ainda encontra
h2xs -n ONC :: RPC rpcsvc / rusers

# Sem constante () ou AUTOLOAD
h2xs -c rpcsvc / rusers

# Cria modelos para uma extensão chamada RPC
h2xs-cfnRPC

# A extensão é ONC :: RPC.
h2xs -cfn ONC :: RPC

# Extension é um módulo Perl puro sem código XS.
h2xs -X My :: Module

# Extension is Lib :: Foo que funciona pelo menos com Perl5.005_03.
# Constantes são criadas para todos os # define e enums que h2xs pode encontrar
# em foo.h.
h2xs -b 5.5.3 -n Lib :: Foo foo.h

# Extension is Lib :: Foo que funciona pelo menos com Perl5.005_03.
# Constantes são criadas para todos os # define, mas apenas para enums
# cujos nomes não começam com 'bar_'.
h2xs -b 5.5.3 -e '^ bar_' -n Lib :: Foo foo.h

# Makefile.PL irá procurar pela biblioteca -lrpc em
# diretório adicional / opt / net / lib
h2xs rpcsvc / rusers -L / opt / net / lib -lrpc

# A extensão é DCE :: rgynbase
# prefixo "sec_rgy_" foi retirado dos nomes das funções perl
h2xs -n DCE :: rgynbase -p sec_rgy_ dce / rgynbase

# A extensão é DCE :: rgynbase
# prefixo "sec_rgy_" foi retirado dos nomes das funções perl
# sub-rotinas são criadas para sec_rgy_wildcard_name e
# sec_rgy_wildcard_sid
h2xs -n DCE :: rgynbase -p sec_rgy_ \
-s sec_rgy_wildcard_name, sec_rgy_wildcard_sid dce / rgynbase

# Faça XS sem definições em perl.h, mas com declarações de função
# visível de perl.h. O nome da extensão é perl1.
# Ao escanear perl.h, defina -DEXT = extern -DdEXT = -DINIT (x) =
# Barras invertidas extras abaixo porque a string é passada para o shell.
# Observe que um diretório com arquivos de cabeçalho perl
# ser adicionado automaticamente para incluir o caminho.
h2xs -xAn perl1 -F "-DEXT = extern -DdEXT = -DINIT \ (x \) =" perl.h

# O mesmo com a declaração de função em proto.h conforme visível em perl.h.
h2xs -xAn perl2 perl.h, proto.h

# O mesmo, mas selecione apenas as funções que correspondem a / ^ av_ /
h2xs -M '^ av_' -xAn perl2 perl.h, proto.h

# O mesmo, mas trate SV * etc como tipos "opacos"
h2xs -o '^ [S] V \ * $' -M '^ av_' -xAn perl2 perl.h, proto.h

Extensão baseado on .h e .c arquivos
Suponha que você tenha alguns arquivos C implementando alguma funcionalidade, e o correspondente
arquivos de cabeçalho. Como criar uma extensão que torne esta funcionalidade acessível em
Perl? O exemplo abaixo assume que os arquivos de cabeçalho são interface_simple.h e
interface_hairy.h, e você deseja que o módulo perl seja nomeado como "Ext :: Ension". Se você precisar
algumas diretivas de pré-processador e / ou vinculação com bibliotecas externas, consulte os sinalizadores "-F",
"-L" e "-l" em "OPÇÕES".

Encontre o nome do diretório
Comece com uma simulação de h2xs:

h2xs -Afn Ext :: Ension

O único objetivo desta etapa é criar os diretórios necessários e informá-lo
os nomes desses diretórios. Na saída, você pode ver que o diretório para
a extensão é Extensão.

Copiar arquivos C
Copie seus arquivos de cabeçalho e arquivos C para este diretório Extensão.

Crie a extensão
Execute o h2xs, substituindo os arquivos gerados automaticamente mais antigos:

h2xs -Oxan Ext :: Ension interface_simple.h interface_hairy.h

h2xs procura por arquivos de cabeçalho depois de mudando para o diretório de extensão, para que ele encontre
seus arquivos de cabeçalho OK.

Arquivar e testar
Como de costume, corra

cd Ext / Ension
perl Makefile.PL
fazer dist
fazer
fazer teste

Dicas
É importante fazer "make dist" o mais cedo possível. Desta forma, você pode facilmente
fundir(1) suas alterações em arquivos gerados automaticamente se você decidir editar seus arquivos ".h" e
execute novamente o H2xs.

Não se esqueça de editar a documentação no gerado .PM arquivo.

Considere os arquivos gerados automaticamente apenas como esqueletos, você pode inventar interfaces melhores
do que o H2xs poderia adivinhar.

Considere esta seção apenas como uma diretriz, algumas outras opções de h2xs podem se adequar melhor
suas necessidades.

MEIO AMBIENTE


Nenhuma variável de ambiente é usada.

Use h2xs online usando serviços onworks.net


Servidores e estações de trabalho gratuitos

Baixar aplicativos Windows e Linux

Comandos Linux

Ad