IngleseFranceseSpagnolo

Ad


Favicon di OnWorks

h2xs - Online nel cloud

Esegui h2xs nel provider di hosting gratuito OnWorks su Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

Questo è il comando h2xs che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

PROGRAMMA:

NOME


h2xs - converte file header .h C in estensioni Perl

SINOSSI


h2xs [VERSIONI ...] [file di intestazione ... [extra_libraries]]

h2xs -h|-?|--Aiuto

DESCRIZIONE


h2xs costruisce un'estensione Perl dai file di intestazione C. L'estensione includerà funzioni
che può essere usato per recuperare il valore di qualsiasi istruzione #define che era nell'intestazione C
File.

I nome_modulo verrà utilizzato per il nome dell'estensione. Se nome_modulo non lo è
fornito, verrà utilizzato il nome del primo file di intestazione, con il primo carattere
in maiuscolo.

Se l'estensione potrebbe richiedere librerie aggiuntive, dovrebbero essere incluse qui. L'estensione
Makefile.PL si occuperà di verificare se le librerie effettivamente esistono e come sono
dovrebbe essere caricato. Le librerie extra dovrebbero essere specificate nella forma -lm -lposix, ecc.
proprio come sulla riga di comando cc. Per impostazione predefinita, il Makefile.PL cercherà attraverso il
percorso della libreria determinato da Configure. Quel percorso può essere aumentato includendo argomenti
del modulo -L/un'altra/biblioteca/percorso nell'argomento extra-biblioteche.

Nonostante il suo nome, h2xs può anche essere usato per creare un modulo Perl puro scheletro. Vedi il
-X opzione.

VERSIONI


-A, --omit-caricamento automatico
Ometti tutte le funzioni di caricamento automatico. Questo è lo stesso di -c ma rimuove anche il
Istruzione "use AutoLoader" dal file .pm.

-B, --versione beta
Utilizza un numero di versione in stile alfa/beta. Fa sì che il numero di versione sia "0.00_01" a meno che
-v è specificato.

-C, --omettere-modifiche
Omette la creazione del Modifiche file e aggiunge una sezione HISTORY al modello POD.

-F, --cpp-flag=aggiungi flag
Flag aggiuntivi da specificare al preprocessore C durante la scansione dell'intestazione per la funzione
dichiarazioni. Scrive queste opzioni nel file generato Makefile.PL troppo.

-M, --func-maschera=Basic espressione
seleziona le funzioni/macro da elaborare.

-O, --sovrascrivi-ok
Consente di sovrascrivere una directory di estensione preesistente.

-P, --omettere-pod
Omettere la sezione POD stub generata automaticamente.

-X, --ometti-XS
Ometti la parte XS. Utilizzato per generare un modulo Perl puro scheletro. "-c" e "-f" sono
implicitamente abilitato.

-a, --gen-accessori
Genera un metodo di accesso per ogni elemento di strutture e unioni. Il generato
i metodi prendono il nome dal nome dell'elemento; restituirà il valore corrente di
elemento se chiamato senza argomenti aggiuntivi; e imposterà l'elemento su
valore fornito (e restituisce il nuovo valore) se chiamato con un argomento aggiuntivo.
Le strutture e le unioni incorporate vengono restituite come puntatore anziché come complete
struttura, per facilitare le chiamate concatenate.

Questi metodi si applicano tutti al tipo Ptr per la struttura; inoltre due metodi
sono costruiti per il tipo di struttura stesso, "_to_ptr" che restituisce un tipo Ptr
che punta alla stessa struttura e un metodo "nuovo" per costruire e restituire un nuovo
struttura, inizializzata a zero.

-b, --versione-compatta=versione
Genera un file .pm che è retrocompatibile con la versione perl specificata.

Per le versioni < 5.6.0, le modifiche sono.
- nessun uso di 'our' (usa invece 'use vars')
- nessun "avviso di utilizzo"

Specificare una versione di compatibilità superiore alla versione di perl che stai utilizzando
run h2xs non avrà alcun effetto. Se non specificato, h2xs sarà automaticamente compatibile con
la versione di perl che stai usando per eseguire h2xs.

-c, --ometti-costante
Ometti "constant()" dal file .xs e il corrispondente "AUTOLOAD" specializzato da
file .pm.

-d, --debug
Attiva i messaggi di debug.

-e, --omit-enum=[Basic espressione]
If Basic espressione non è dato, salta tutte le costanti che sono definite in un C
enumerazione. Altrimenti salta solo quelle costanti che sono definite in un'enum il cui
nome corrisponde Basic espressione.

Dal Basic espressione è facoltativo, assicurati che questo interruttore sia seguito da at
almeno un altro interruttore se ometti Basic espressione e avere alcuni argomenti in sospeso
come i nomi dei file di intestazione. Questo va bene:

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

Questo non va bene:

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

In quest'ultimo, foo.h è preso come Basic espressione.

-f, --vigore
Consente di creare un'estensione per un'intestazione anche se tale intestazione non si trova in
lo standard include le directory.

-g, --globale
Includere il codice per l'archiviazione sicura dei dati statici nel file .xs. Estensioni che no
fare uso di dati statici può ignorare questa opzione.

-h, -?, --Aiuto
Stampa l'utilizzo, la guida e la versione per questo h2xs ed esci.

-k, --omit-const-funzione
Per gli argomenti della funzione dichiarati come "const", ometti l'attributo const nel file generato
codice XS.

-m, --gen-tied-var
Sperimentale: per ogni variabile dichiarata nei file di intestazione, dichiara un perl
variabile con lo stesso nome magicamente legata alla variabile C.

-n, --nome=nome_modulo
Specifica un nome da utilizzare per l'estensione, ad esempio -n RPC::DCE

-o, --opaco-re=Basic espressione
Usa il tipo di dati "opaco" per i tipi C corrispondenti all'espressione regolare, anche se
questi tipi sono "typedef" equivalenti ai tipi delle mappe dei tipi. Non dovrebbe essere usato
senza -x.

Ciò può essere utile poiché, ad esempio, i tipi che sono "typedef" equivalenti a interi possono
rappresentano handle relativi al sistema operativo e si potrebbe voler lavorare con questi handle in modo OO,
come in "$handle->do_something()". Usa "-o". se vuoi gestire tutte le
Tipi "typedef" come tipi opachi.

Il tipo da abbinare è cancellato (eccetto per le virgole, che prima non hanno spazi bianchi
loro e più "*" che non hanno spazi bianchi tra di loro).

-p, --rimuovi-prefisso=prefisso
Specificare un prefisso che dovrebbe essere rimosso dai nomi delle funzioni Perl, ad es.
-p sec_rgy_ Questo imposta l'XS PREFISSO parola chiave e rimuove il prefisso dalle funzioni
che vengono caricati automaticamente tramite il meccanismo "constant()".

-s, --const-sub=sub1, sub2
Crea una subroutine perl per le macro specificate invece di caricarla automaticamente con il
costante() sottoprogramma. Si presume che queste macro abbiano un tipo restituito di serbatoio *,
ad esempio, -s sec_rgy_wildcard_name,sec_rgy_wildcard_sid.

-t, --tipo-predefinito=Digitare
Specificare il tipo interno che il costante() meccanismo utilizzato per le macro. Il predefinito
è IV (intero con segno). Attualmente tutte le macro trovate durante la scansione dell'intestazione
si presume che il processo abbia questo tipo. Le versioni future di "h2xs" potrebbero ottenere il
capacità di fare ipotesi plausibili.

--usa-nuovi-test
Quando --versione-compatta (-b) è presente che i test generati utilizzeranno "Test::More"
piuttosto che "Test" che è l'impostazione predefinita per le versioni precedenti alla 5.6.2. "Test::More" sarà
essere aggiunto a PREREQ_PM nel "Makefile.PL" generato.

--usa-vecchi-test
Forza la generazione del codice di test che utilizza il vecchio modulo "Test".

--skip-esportatore
Non utilizzare "Esportatore" e/o esportare alcun simbolo.

--skip-pport
Non utilizzare "Devel::PPPort": nessuna portabilità alla versione precedente.

--skip-caricatore automatico
Non utilizzare il modulo "AutoLoader"; ma tieni il costante() funzione e "sub
AUTOLOAD" per le costanti.

--skip-rigorosamente
Non usare il pragma "rigoroso".

--salta-avvisi
Non utilizzare il pragma "avvertimenti".

-v, --versione=versione
Specificare un numero di versione per questa estensione. Questo numero di versione viene aggiunto a
modelli. Il valore predefinito è 0.01 o 0.00_01 se viene specificato "-B". La versione
specificato deve essere numerico.

-x, --autogen-xsubs
Genera automaticamente XSUB in base alle dichiarazioni di funzione nel file di intestazione. Il
il pacchetto "C::Scan" dovrebbe essere installato. Se viene specificata questa opzione, il nome del
il file di intestazione può essere simile a "NAME1,NAME2". In questo caso si usa NAME1 al posto di
stringa specificata, ma gli XSUB vengono emessi solo per le dichiarazioni incluse dal file
NOME2.

Nota che alcuni tipi di argomenti/valori restituiti per le funzioni possono risultare in
XSUB-dichiarazioni/typemap-entry che necessitano di modifiche manuali. Tali possono essere oggetti che
non può essere convertito da/a un puntatore (come "long long"), puntatori a funzioni o
matrici. Vedere anche la sezione "LIMITAZIONI di -x".

ESEMPI


# Comportamento predefinito, l'estensione è Ruser
h2xs rpcsvc/rusers

# Uguale, ma l'estensione è RUSERS
h2xs -n RUSERS rpcsvc/rusers

# L'estensione è rpcsvc::rusers. trova ancora
h2xs rpcsvc ::rusers

# L'estensione è ONC::RPC. trova ancora
h2xs -n ONC::RPC rpcsvc/rusers

# Senza costante() o AUTOLOAD
h2xs -c rpcsvc/rusers

# Crea modelli per un'estensione denominata RPC
h2xs -cfnRPC

# L'estensione è ONC::RPC.
h2xs -cfn ONC::RPC

# Extension è un modulo Perl puro senza codice XS.
h2xs -X Mio::Modulo

# L'estensione è Lib::Foo che funziona almeno con Perl5.005_03.
# Vengono create costanti per tutte le #define e le enum che h2xs riesce a trovare
# in foo.h.
h2xs -b 5.5.3 -n Lib::Foo foo.h

# L'estensione è Lib::Foo che funziona almeno con Perl5.005_03.
# Le costanti vengono create per tutte le #define ma solo per le enum
# i cui nomi non iniziano con 'bar_'.
h2xs -b 5.5.3 -e '^bar_' -n Lib::Foo foo.h

# Makefile.PL cercherà la libreria -lrpc in
# directory aggiuntiva /opt/net/lib
h2xs rpcsvc/rusers -L/opt/net/lib -lrpc

# L'estensione è DCE::rgynbase
# il prefisso "sec_rgy_" viene eliminato dai nomi delle funzioni perl
h2xs -n DCE::rgynbase -p sec_rgy_dce/rgynbase

# L'estensione è DCE::rgynbase
# il prefisso "sec_rgy_" viene eliminato dai nomi delle funzioni perl
# vengono create subroutine per sec_rgy_wildcard_name e
# sec_rgy_wildcard_sid
h2xs -n DCE::rgynbase -p sec_rgy_ \
-s sec_rgy_wildcard_nome,sec_rgy_wildcard_sid dce/rgynbase

# Crea XS senza define in perl.h, ma con dichiarazioni di funzione
# visibile da perl.h. Il nome dell'estensione è perl1.
# Durante la scansione di perl.h, definire -DEXT=extern -DdEXT= -DINIT(x)=
# Barre rovesciate extra sotto perché la stringa è passata alla shell.
# Nota che una directory con file di intestazione perl sarebbe
# essere aggiunto automaticamente per includere il percorso.
h2xs -xAn perl1 -F "-DEXT=extern -DdEXT= -DINIT\(x\)=" perl.h

# Stessa cosa con la dichiarazione di funzione in proto.h come visibile da perl.h.
h2xs -xAn perl2 perl.h,proto.h

# Uguale ma seleziona solo le funzioni che corrispondono a /^av_/
h2xs -M '^av_' -xAn perl2 perl.h,proto.h

# Uguale ma tratta SV* etc come tipi "opachi"
h2xs -o '^[S]V \*$' -M '^av_' -xAn perl2 perl.h,proto.h

Estensione basato on .h ed .c file
Supponiamo di avere alcuni file C che implementano alcune funzionalità e il corrispondente
file di intestazione. Come creare un'estensione che renda accessibile questa funzionalità in
Perla? L'esempio seguente presuppone che i file di intestazione siano interfaccia_semplice.h ed
interfaccia_pelosa.h, e vuoi che il modulo perl sia chiamato "Ext::Ension". Se hai bisogno
alcune direttive del preprocessore e/o il collegamento con librerie esterne, vedere i flag "-F",
"-L" e "-l" in "OPZIONI".

Trova il nome della directory
Inizia con un'esecuzione fittizia di h2xs:

h2xs -Afn Est::Ensione

L'unico scopo di questo passaggio è creare le directory necessarie e farti sapere
i nomi di queste directory. Dall'output puoi vedere che la directory per
l'estensione è Estensione.

Copia file C
Copia i file di intestazione e i file C in questa directory Estensione.

Crea l'estensione
Esegui h2xs, sovrascrivendo i vecchi file generati automaticamente:

h2xs -Oxan Ext::Ension interfaccia_simple.h interfaccia_peloso.h

h2xs cerca i file di intestazione dopo passando alla directory dell'estensione, così troverà
i tuoi file di intestazione OK.

Archivia e prova
Come al solito, corri

cd Est/Ension
perl Makefile.PL
fare dist
make
fare il test

Suggerimenti
È importante fare "fare dist" il prima possibile. In questo modo puoi facilmente
unire(1) le tue modifiche ai file generati automaticamente se decidi di modificare i tuoi file ".h" e
riesegui h2xs.

Non dimenticare di modificare la documentazione nel file generato .pm file.

Considera i file generati automaticamente solo come scheletri, potresti inventare interfacce migliori
di quello che h2xs potrebbe immaginare.

Considera questa sezione solo come linea guida, alcune altre opzioni di h2xs potrebbero adattarsi meglio
I tuoi bisogni.

AMBIENTE


Non vengono utilizzate variabili di ambiente.

Usa h2xs online utilizzando i servizi onworks.net


Server e workstation gratuiti

Scarica app per Windows e Linux

Comandi Linux

Ad