Angielskifrancuskihiszpański

Ad


Ulubiona usługa OnWorks

h2xs — online w chmurze

Uruchom h2xs w darmowym dostawcy hostingu OnWorks przez Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS

Jest to polecenie h2xs, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z wielu naszych bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online MAC OS

PROGRAM:

IMIĘ


h2xs - konwertuje pliki nagłówkowe .h C na rozszerzenia Perla

STRESZCZENIE


h2xs [OPCJE ...] [plik nagłówkowy ... [dodatkowe_biblioteki]]

h2xs -h|-?|--help

OPIS


h2xs buduje rozszerzenie Perla z plików nagłówkowych C. Rozszerzenie będzie zawierało funkcje
którego można użyć do pobrania wartości dowolnej instrukcji #define, która znajdowała się w nagłówku C
akta.

Połączenia Nazwa modułu zostanie użyty jako nazwa rozszerzenia. Jeśli nazwa_modułu nie jest
zostanie użyta nazwa pierwszego pliku nagłówkowego z pierwszym znakiem
dużymi literami.

Jeśli rozszerzenie może wymagać dodatkowych bibliotek, należy je tutaj uwzględnić. rozszerzenie
Makefile.PL zajmie się sprawdzeniem, czy biblioteki rzeczywiście istnieją iw jaki sposób
powinien być załadowany. Dodatkowe biblioteki należy podać w postaci -lm -lposix itd.,
tak jak w wierszu poleceń cc. Domyślnie Makefile.PL przeszuka pliki
ścieżka biblioteki określona przez Configure. Ścieżkę tę można rozszerzyć, włączając argumenty
formy -L/inna/biblioteka/ścieżka w argumencie pozabibliotecznym.

Pomimo swojej nazwy, h2xs może być również użyty do stworzenia szkieletowego czystego modułu Perla. Zobacz
-X opcja.

OPCJE


-A, --pomiń-automatyczne ładowanie
Pomiń wszystkie funkcje automatycznego ładowania. To jest to samo co -c ale także usuwa
Instrukcja „use AutoLoader” z pliku .pm.

-B, --wersja beta
Użyj numeru wersji alfa/beta. Powoduje, że numer wersji to „0.00_01”, chyba że
-v jest specyficzne.

-C, --pomiń-zmiany
Pomija tworzenie Zmiany plik i dodaje sekcję HISTORY do szablonu POD.

-F, --cpp-flagi=dodaj flagi
Dodatkowe flagi do określenia dla preprocesora C podczas skanowania nagłówka w poszukiwaniu funkcji
deklaracje. Zapisuje te opcje w pliku generowane Makefile.PL też.

-M, --funk-maska=regularny wyrażenie
wybiera funkcje/makra do przetworzenia.

-O, --nadpisz-ok
Umożliwia zastąpienie istniejącego katalogu rozszerzeń.

-P, --pomiń-pod
Pomiń sekcję generowanych automatycznie kodów pośredniczących POD.

-X, --pomiń-XS
Pomiń część XS. Służy do generowania szkieletowego czystego modułu Perla. „-c” i „-f” są
niejawnie włączone.

-a, --gen-akcesorów
Wygeneruj metodę dostępu dla każdego elementu struktur i związków. wygenerowany
nazwy metod pochodzą od nazwy elementu; zwróci aktualną wartość
element, jeśli został wywołany bez dodatkowych argumentów; i ustawi element na
podana wartość (i zwraca nową wartość), jeśli zostanie wywołana z dodatkowym argumentem.
Struktury osadzone i unie są zwracane jako wskaźnik, a nie całość
strukturę, aby ułatwić połączenia łańcuchowe.

Wszystkie te metody dotyczą typu Ptr dla struktury; dodatkowo dwie metody
są skonstruowane dla samego typu struktury, „_to_ptr”, który zwraca typ Ptr
wskazując na tę samą strukturę i „nową” metodę konstruowania i zwracania nowej
struktura inicjowana zerami.

-b, --kompatybilna-wersja=wersja
Generuje plik .pm, który jest wstecznie kompatybilny z określoną wersją perla.

W przypadku wersji < 5.6.0 zmiany są następujące.
- brak użycia „our” (zamiast tego używa „use vars”)
- brak „ostrzeżeń o użytkowaniu”

Określenie wersji kompatybilności wyższej niż wersja perla, którego używasz
run h2xs nie przyniesie żadnego efektu. Jeśli nieokreślony h2xs domyślnie będzie zgodny z
wersja Perla, której używasz do uruchamiania h2xs.

-c, --omit-stała
Pomiń „constant()” z pliku .xs i odpowiadające mu wyspecjalizowane „AUTOLOAD” z
plik .pm.

-d, --debugowanie
Włącz komunikaty debugowania.

-e, --pomiń-wyliczenia=[regularny wyrażenie]
If regularny wyrażenie nie jest podane, pomiń wszystkie stałe zdefiniowane w C
wyliczenie. W przeciwnym razie pomiń tylko te stałe, które są zdefiniowane w wyliczeniu czyj
pasujące nazwy regularny wyrażenie.

Ponieważ regularny wyrażenie jest opcjonalny, upewnij się, że po tym przełączniku następuje at
co najmniej jeden inny przełącznik, jeśli pominiesz regularny wyrażenie i mieć kilka oczekujących argumentów
takie jak nazwy plików nagłówkowych. To jest wporządku:

h2xs -e -n Moduł::Foo foo.h

to nie jest w porządku:

h2xs -n Moduł::Foo -e foo.h

W tym drugim przypadku foo.h jest traktowane jako regularny wyrażenie.

-f, --siła
Umożliwia utworzenie rozszerzenia dla nagłówka, nawet jeśli ten nagłówek nie zostanie znaleziony w
standardowo zawierają katalogi.

-g, --światowy
Dołącz kod do bezpiecznego przechowywania danych statycznych w pliku .xs. Rozszerzenia, które nie
korzystać z danych statycznych, może zignorować tę opcję.

-h, -?, --help
Wydrukuj użycie, pomoc i wersję dla tego h2xs i wyjdź.

-k, --omit-const-funkcja
W przypadku argumentów funkcji zadeklarowanych jako „const” pomiń atrybut const w wygenerowanym pliku
Kod XS.

-m, --gen-tied-var
Eksperymentalny: dla każdej zmiennej zadeklarowanej w plikach nagłówkowych zadeklaruj plik perl
zmienna o tej samej nazwie magicznie powiązana ze zmienną C.

-n, --Nazwa=Nazwa modułu
Określa nazwę używaną dla rozszerzenia, np. -n RPC::DCE

-o, --nieprzezroczysty-re=regularny wyrażenie
Użyj „nieprzezroczystego” typu danych dla typów C dopasowanych przez wyrażenie regularne, nawet jeśli
te typy są "typedef" - równoważne typom z typemaps. Nie należy używać
bez -x.

Może to być przydatne, ponieważ, powiedzmy, typy, które są odpowiednikami „typedef” liczb całkowitych, mogą
reprezentują uchwyty związane z systemem operacyjnym i można chcieć pracować z tymi uchwytami w sposób OO,
jak w "$handle->do_coś()". Użyj „-o”. jeśli chcesz obsługiwać wszystkie
typy „typedef” jako typy nieprzezroczyste.

Typ do dopasowania jest bielony (z wyjątkiem przecinków, które wcześniej nie mają spacji
je i wiele „*”, które nie mają między sobą spacji).

-p, --usuń przedrostek=prefiks
Określ przedrostek, który ma zostać usunięty z nazw funkcji Perla, np.
-p sec_rgy_ To ustawia XS PREFIKSÓW słowo kluczowe i usuwa prefiks z funkcji
które są ładowane automatycznie za pomocą mechanizmu „constant()”.

-s, --const-subs=pod1, pod2
Utwórz podprogram Perla dla określonych makr zamiast automatycznego ładowania za pomocą
stały() podprogram. Zakłada się, że te makra mają zwracany typ zwęglać *,
np. -s sec_rgy_wildcard_name,sec_rgy_wildcard_sid.

-t, --typ-domyślny=rodzaj
Określ typ wewnętrzny, który ma stały() mechanizm używany dla makr. Domyślny
to IV (liczba całkowita ze znakiem). Obecnie wszystkie makra znalezione podczas skanowania nagłówka
zakłada się, że proces ma ten typ. Przyszłe wersje „h2xs” mogą zyskać
umiejętność dokonywania świadomych domysłów.

--use-new-testy
Kiedy --kompatybilna-wersja (-b) jest obecny, wygenerowane testy będą używać „Test::More”
zamiast opcji „Test”, która jest domyślna dla wersji starszych niż 5.6.2. „Test::Więcej” będzie
zostać dodany do PREREQ_PM w wygenerowanym "Makefile.PL".

--użyj-starych-testów
Wymusi wygenerowanie kodu testowego używającego starszego modułu „Test”.

--skip-eksporter
Nie używaj „Eksportera” i/lub nie eksportuj żadnego symbolu.

--pomiń ppport
Nie używaj „Devel::PPPort”: brak możliwości przenoszenia do starszej wersji.

--skip-autoloader
Nie używaj modułu „AutoLoader”; ale trzymaj stały() funkcja i „sub
AUTOLOAD” dla stałych.

--skip-ścisłe
Nie używaj pragmy „ścisły”.

--pomiń ostrzeżenia
Nie używaj pragma „ostrzeżeń”.

-v, --wersja=wersja
Określ numer wersji dla tego rozszerzenia. Ten numer wersji jest dodawany do pliku
szablony. Wartością domyślną jest 0.01 lub 0.00_01, jeśli podano „-B”. Wersja
określony powinien być numeryczny.

-x, --autogen-xsubs
Automatycznie generuj XSUB-y na podstawie deklaracji funkcji w pliku nagłówkowym. The
pakiet „C::Scan” powinien być zainstalowany. Jeśli ta opcja jest określona, ​​nazwa pliku
plik nagłówkowy może wyglądać jak „NAZWA1,NAZWA2”. W tym przypadku NAME1 jest używane zamiast
określony ciąg, ale XSUB są emitowane tylko dla deklaracji zawartych w pliku
NAZWA2.

Zauważ, że niektóre typy argumentów/wartości zwracanych dla funkcji mogą spowodować
Deklaracje XSUB/wpisy mapy typów, które wymagają ręcznej edycji. Takimi mogą być obiekty, które
nie można przekonwertować z/na wskaźnik (jak „long long”), wskaźniki do funkcji lub
tablice. Zobacz także sekcję „OGRANICZENIA -x".

PRZYKŁADY


# Domyślne zachowanie, rozszerzenie to Rusers
h2xs rpcsvc/rusers

# To samo, ale rozszerzenie to RUSERS
h2xs -n RUSERS rpcsvc/rusers

# Rozszerzenie to rpcsvc::rusers. Wciąż znajduje
h2xs rpcsvc::rusers

# Rozszerzenie to ONC::RPC. Wciąż znajduje
h2xs -n ONC::RPC rpcsvc/rusers

# Bez stałej() lub AUTOLOAD
h2xs -c rpcsvc/rusers

# Tworzy szablony dla rozszerzenia o nazwie RPC
h2xs -cfn RPC

# Rozszerzenie to ONC::RPC.
h2xs -cfn ONC::RPC

# Rozszerzenie to czysty moduł Perla bez kodu XS.
h2xs -X Mój::Moduł

# Rozszerzenie to Lib::Foo, które działa przynajmniej z Perl5.005_03.
# Stałe są tworzone dla wszystkich #defines i enums, które h2xs może znaleźć
# w foo.h.
h2xs -b 5.5.3 -n Lib::Foo foo.h

# Rozszerzenie to Lib::Foo, które działa przynajmniej z Perl5.005_03.
# Stałe są tworzone dla wszystkich #defines, ale tylko dla wyliczeń
# których nazwy nie zaczynają się od „bar_”.
h2xs -b 5.5.3 -e '^bar_' -n Lib::Foo foo.h

# Makefile.PL wyszuka bibliotekę -lrpc w
# dodatkowy katalog /opt/net/lib
h2xs rpcsvc/rusers -L/opt/net/lib -lrpc

# Rozszerzenie to DCE::rgynbase
# przedrostek "sec_rgy_" jest usuwany z nazw funkcji Perla
h2xs -n DCE::rgynbase -p sec_rgy_ dce/rgynbase

# Rozszerzenie to DCE::rgynbase
# przedrostek "sec_rgy_" jest usuwany z nazw funkcji Perla
# podprogramów jest tworzonych dla sec_rgy_wildcard_name i
# sec_rgy_wildcard_sid
h2xs -n DCE::rgynbase -p sec_rgy_ \
-s nazwa_dzikiej_karty sec,sid_sid_dzikiej karty_sekcji dce/rgynbase

# Utwórz XS bez definicji w perl.h, ale z deklaracjami funkcji
# widoczne z perl.h. Nazwa rozszerzenia to perl1.
# Podczas skanowania perl.h zdefiniuj -DEXT=extern -DdEXT= -DINIT(x)=
# Dodatkowe ukośniki odwrotne poniżej, ponieważ łańcuch jest przekazywany do powłoki.
# Zauważ, że katalog z plikami nagłówkowymi Perla
# zostanie automatycznie dodany, aby dołączyć ścieżkę.
h2xs -xAn perl1 -F "-DEXT=extern -DdEXT= -DINIT\(x\)=" perl.h

# To samo z deklaracją funkcji w proto.h, jak widać z perl.h.
h2xs -xAn perl2 perl.h,proto.h

# To samo, ale wybierz tylko funkcje pasujące do /^av_/
h2xs -M '^av_' -xAn perl2 perl.h,proto.h

# To samo, ale traktuj SV* itp. jako typy „nieprzezroczyste”.
h2xs -o '^[S]V \*$' -M '^av_' -xAn perl2 perl.h,proto.h

Rozbudowa na podstawie on .h i .c pliki
Załóżmy, że masz kilka plików C implementujących pewne funkcje i odpowiadające im
pliki nagłówkowe. Jak utworzyć rozszerzenie, które udostępnia tę funkcjonalność w
Perl? Poniższy przykład zakłada, że ​​pliki nagłówkowe są interfejs_prosty.h i
interfejs_włochaty.hi chcesz, aby moduł perla miał nazwę „Ext::Ension”. Jeśli potrzebujesz
niektóre dyrektywy preprocesora i/lub łączenie z zewnętrznymi bibliotekami, patrz flagi "-F",
„-L” i „-l” w „OPCJACH”.

Znajdź nazwę katalogu
Zacznij od fałszywego przebiegu h2xs:

h2xs -Afn Ext::Ension

Jedynym celem tego kroku jest utworzenie potrzebnych katalogów i poinformowanie Cię o tym
nazwy tych katalogów. Z danych wyjściowych widać, że katalog for
rozszerzenie jest Rozszerzenie.

Skopiuj pliki C
Skopiuj pliki nagłówkowe i pliki C do tego katalogu Rozszerzenie.

Utwórz rozszerzenie
Uruchom h2xs, nadpisując starsze automatycznie wygenerowane pliki:

h2xs -Oxan Ext::Ension interfejs_simple.h interfejs_włosy.h

h2xs szuka plików nagłówkowych po przejście do katalogu rozszerzeń, więc znajdzie
twoje pliki nagłówkowe OK.

Archiwizuj i testuj
Jak zwykle biegnij

CD Ext/Ension
Perl Makefile.PL
zrobić dist
robić
zrobić test

Wskazówki
Ważne jest, aby zrobić „make dist” tak wcześnie, jak to możliwe. W ten sposób możesz łatwo
łączyć(1) twoje zmiany w automatycznie generowanych plikach, jeśli zdecydujesz się edytować swoje pliki „.h” i
powtórz h2xs.

Nie zapomnij edytować dokumentacji w wygenerowanym pliku .po południu plik.

Potraktuj pliki generowane automatycznie jako szkielety, możesz wymyślić lepsze interfejsy
niż to, co h2xs może odgadnąć.

Potraktuj tę sekcję tylko jako wskazówkę, niektóre inne opcje h2xs mogą lepiej pasować
Twoje potrzeby.

ŚRODOWISKO


Nie są używane żadne zmienne środowiskowe.

Korzystaj z h2xs online, korzystając z usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

Komendy systemu Linux

Ad