İngilizceFransızcaİspanyolca

Ad


OnWorks favicon'u

h2xs - Bulutta Çevrimiçi

OnWorks ücretsiz barındırma sağlayıcısında h2xs'yi Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü üzerinden çalıştırın

Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen h2xs komutudur.

Program:

ADI


h2xs - .h C başlık dosyalarını Perl uzantılarına dönüştürün

SİNOPSİS


h2xs [SEÇENEKLER ...] [başlık dosyası ... [ekstra_kütüphaneler]]

h2xs -h|-?|--yardım et

TANIM


h2xs C başlık dosyalarından bir Perl uzantısı oluşturur. Uzantı, işlevleri içerecektir
bu, C başlığındaki herhangi bir #define ifadesinin değerini almak için kullanılabilir.
dosyaları.

The Modül Adı uzantının adı için kullanılacaktır. modül_adı değilse
sağlandığında, ilk başlık dosyasının adı, ilk karakterle birlikte kullanılacaktır.
büyük harfle yazılmış.

Uzantının ekstra kitaplıklara ihtiyacı varsa, bunlar buraya eklenmelidir. uzantı
Makefile.PL, kitaplıkların gerçekten var olup olmadığını ve nasıl olduklarını kontrol etmekle ilgilenecektir.
yüklenmelidir. Ekstra kütüphaneler -lm -lposix, vb. şeklinde belirtilmelidir.
tıpkı cc komut satırında olduğu gibi. Varsayılan olarak, Makefile.PL arama yapacaktır.
Configure tarafından belirlenen kitaplık yolu. Bu yol, argümanlar dahil edilerek genişletilebilir.
şeklinde -L/başka/kütüphane/yol ekstra kütüphaneler argümanında.

Adına rağmen, h2xs ayrıca bir iskelet saf Perl modülü oluşturmak için de kullanılabilir. Bkz.
-X seçeneği.

SEÇENEKLER


-A, --otomatik yüklemeyi atla
Tüm otomatik yükleme olanaklarını atlayın. Bu aynı -c ama aynı zamanda kaldırır
.pm dosyasından "AutoLoader kullan" ifadesi.

-B, --beta sürümü
Alfa/beta tarzı bir sürüm numarası kullanın. olmadıkça sürüm numarasının "0.00_01" olmasına neden olur.
-v belirtilir.

-C, --değişiklikleri atla
oluşturmayı atlar değişiklikler dosyasını açar ve POD şablonuna bir HISTORY bölümü ekler.

-F, --cpp-bayrakları=ek bayraklar
İşlev için başlık taranırken C önişlemcisine belirtilecek ek bayraklar
beyanlar. Bu seçenekleri oluşturulan dosyaya yazar. Makefile.PL çok.

-M, --fonk-maske=düzenli ifade
işlenecek işlevleri/makroları seçer.

-O, --üzerine yaz-tamam
Önceden var olan bir uzantı dizininin üzerine yazılmasına izin verir.

-P, --atlama bölmesi
Otomatik oluşturulmuş saplama POD bölümünü atlayın.

-X, --eksik-XS
XS bölümünü atlayın. Bir iskelet saf Perl modülü oluşturmak için kullanılır. "-c" ve "-f"
dolaylı olarak etkinleştirildi.

-a, --gen erişimcileri
Her yapı ve birleşim öğesi için bir erişimci yöntemi oluşturun. oluşturulan
yöntemler, öğe adından sonra adlandırılır; geçerli değerini döndürür
ek argümanlar olmadan çağrılırsa öğe; ve öğeyi
ek bir bağımsız değişkenle çağrılırsa, sağlanan değer (ve yeni değeri döndürür).
Gömülü yapılar ve birleşimler, tamamlanmış yapı yerine işaretçi olarak döndürülür.
zincirleme çağrıları kolaylaştırmak için yapı.

Bu yöntemlerin tümü, yapı için Ptr türü için geçerlidir; ek olarak iki yöntem
bir Ptr türü döndüren "_to_ptr" yapı türünün kendisi için oluşturulmuştur
aynı yapıya işaret etmek ve yeni bir yapı oluşturmak ve döndürmek için "yeni" bir yöntem
yapı, sıfıra başlatıldı.

-b, --uyumlu-sürüm=versiyon
Belirtilen Perl sürümüyle geriye dönük uyumlu bir .pm dosyası oluşturur.

< 5.6.0 sürümleri için değişiklikler şunlardır.
- 'bizim' kullanılmaz (bunun yerine 'use vars' kullanılır)
- 'kullanım uyarıları' yok

Kullanmakta olduğunuz perl sürümünden daha yüksek bir uyumluluk sürümü belirtme
h2xs çalıştırmanın bir etkisi olmaz. Belirtilmemiş h2xs ile uyumluluğa varsayılan olacaksa hXNUMXxs
h2xs'i çalıştırmak için kullandığınız perl sürümü.

-c, --omit-sabit
.xs dosyasından "constant()" öğesini ve ilgili özel "AUTOLOAD" öğesini şu dosyadan çıkarın.
.pm dosyası.

-d, --hata ayıklama
Hata ayıklama mesajlarını açın.

-e, --omit-enums=[düzenli ifade]
If düzenli ifade verilmezse, C'de tanımlanan tüm sabitleri atlayın
numaralandırma. Aksi takdirde, yalnızca bir numaralandırmada tanımlanan sabitleri atlayın.
isim eşleşmeleri düzenli ifade.

Dan beri düzenli ifade isteğe bağlıdır, bu anahtarın şurada olduğundan emin olun:
atlarsanız en az bir başka anahtar düzenli ifade ve bekleyen bazı argümanlar var
başlık-dosya adları gibi. Tamamdır:

h2xs -e -n Modül::Foo foo.h

Bu tamam değil:

h2xs -n Modül::Foo -e foo.h

İkincisinde, foo.h olarak alınır düzenli ifade.

-f, --Kuvvet
Başlıkta bulunmasa bile bir başlık için bir uzantı oluşturulmasına izin verir.
standart dizinleri içerir.

-g, --küresel
Statik verileri .xs dosyasına güvenli bir şekilde depolamak için kod ekleyin. Hayır yapmayan uzantılar
statik verileri kullanmak bu seçeneği yok sayabilir.

-h, -?, --yardım et
Bu h2xs için kullanımı, yardımı ve sürümü yazdırın ve çıkın.

-k, --omit-const-fonk
"const" olarak bildirilen işlev bağımsız değişkenleri için, oluşturulan dosyada const özniteliğini atlayın.
XS kodu.

-m, --gen-bağlı-var
Deneysel: başlık dosyasında/dosyalarında bildirilen her değişken için bir Perl bildirin
aynı adı taşıyan değişken sihirli bir şekilde C değişkenine bağlanır.

-n, --isim=Modül Adı
Uzantı için kullanılacak bir adı belirtir, örneğin -n RPC::DCE

-o, --opak-yeniden=düzenli ifade
Normal ifadeyle eşleşen C türleri için "opak" veri türünü kullanın.
bu türler "typedef"tir - typemap'lerdeki türlere eşdeğerdir. Kullanılmamalı
olmadan -x.

Bu, örneğin tamsayılara eşdeğer "typedef" olan türler olabileceği için yararlı olabilir.
işletim sistemi ile ilgili tutamaçları temsil eder ve biri bu tutamaçlarla OO yolunda çalışmak isteyebilir,
"$handle->do_something()"deki gibi. "-o" kullanın. hepsini halletmek istiyorsan
opak türler olarak "typedef"ed türleri.

Eşleşecek tür beyaza boyanmıştır (öncesinde boşluk olmayan virgüller hariç
ve aralarında boşluk olmayan birden çok "*".

-p, --remove-önek=önek
Perl işlev adlarından kaldırılması gereken bir önek belirtin, örn.
-p sec_rgy_ Bu, XS'yi ayarlar ÖNEK anahtar kelime ve öneki işlevlerden kaldırır
"constant()" mekanizması aracılığıyla otomatik olarak yüklenir.

-s, --const-subs=alt1, alt2
Otomatik yükleme yerine belirtilen makrolar için bir Perl alt yordamı oluşturun.
devamlı() alt program Bu makroların bir dönüş tipine sahip olduğu varsayılır. tank *,
örneğin, -s sec_rgy_wildcard_name,sec_rgy_wildcard_sid.

-t, --varsayılan-tür=tip
Kullanılacak dahili türü belirtin. devamlı() mekanizma makrolar için kullanır. Varsayılan
IV'tür (işaretli tam sayı). Şu anda başlık taraması sırasında bulunan tüm makrolar
işlemin bu türde olduğu varsayılacaktır. "h2xs"in gelecekteki sürümleri,
eğitimli tahminler yapma yeteneği.

--use-new-testleri
Ne zaman --uyumlu-sürüm (-b) mevcutsa, oluşturulan testler "Test::More" kullanır
5.6.2'den önceki sürümler için varsayılan olan "Test" yerine. "Test::Daha Fazla"
oluşturulan "Makefile.PL" içindeki PREREQ_PM'ye eklenebilir.

--eski-testleri kullan
Eski "Test" modülünü kullanan test kodunun oluşturulmasını zorlar.

--atla-ihracatçı
"Exporter" kullanmayın ve/veya herhangi bir sembolü dışa aktarmayın.

--atla-ppport
"Devel::PPPort" kullanmayın: eski sürüme taşınabilirlik yok.

--atla-otomatik yükleyici
"AutoLoader" modülünü kullanmayın; ama sakla devamlı() işlev ve "alt
AUTOLOAD" sabitler için.

--kesin atlama
Pragma "katı" kullanmayın.

--atla-uyarılar
Pragma "uyarıları" kullanmayın.

-v, --versiyon=versiyon
Bu uzantı için bir sürüm numarası belirtin. Bu sürüm numarası,
şablonlar. Varsayılan değer 0.01 veya "-B" belirtilmişse 0.00_01'dir. Sürüm
belirtilen sayısal olmalıdır.

-x, --autogen-xsubs
Başlık dosyasındaki işlev bildirimlerine dayalı olarak otomatik olarak XSUB'lar oluşturun. NS
"C::Scan" paketi kurulmalıdır. Bu seçenek belirtilirse, öğenin adı
başlık dosyası "NAME1,NAME2" gibi görünebilir. Bu durumda, yerine NAME1 kullanılır.
belirtilen dize, ancak XSUB'lar yalnızca dosyadan dahil edilen bildirimler için yayınlanır
ADI2.

Fonksiyonlar için bazı argüman türlerinin/dönüş değerlerinin sonuçlanabileceğini unutmayın.
Elle düzenlenmesi gereken XSUB bildirimleri/tip haritası girdileri. Böyle nesneler olabilir
bir işaretçiden/işaretçiye ("uzun uzun" gibi), işaretçiler işlevlere veya
diziler. Ayrıca "Kısıtlamalar" bölümüne bakın. -x".

ÖRNEKLER


# Varsayılan davranış, uzantı Ruslar'dır
h2xs rpcsvc/kullanıcılar

# Aynı, ancak uzantı RUSERS
h2xs -n RUSERS rpcsvc/users

# Uzantı rpcsvc::rusers. Hala bulur
h2xs rpcsvc::kullanıcılar

# Uzantı ONC::RPC'dir. Hala bulur
h2xs -n ONC::RPC rpcsvc/kullanıcılar

# Sabit() veya AUTOLOAD olmadan
h2xs -c rpcsvc/kullanıcılar

# RPC adlı bir uzantı için şablonlar oluşturur
h2xs -cfn RPC'si

# Uzantı ONC::RPC'dir.
h2xs -cfn ONC::RPC

# Uzantı, XS kodu olmayan saf bir Perl modülüdür.
h2xs -X Benim::Modülüm

# Uzantı, en azından Perl5.005_03 ile çalışan Lib::Foo'dur.
# H2x'lerin bulabileceği tüm #defines ve enums için sabitler oluşturulur
# foo.h'de.
h2xs -b 5.5.3 -n Lib::Foo foo.h

# Uzantı, en azından Perl5.005_03 ile çalışan Lib::Foo'dur.
# Sabitler tüm #tanımlar için oluşturulur, ancak yalnızca numaralandırmalar için
# isimleri 'bar_' ile başlamayanlar.
h2xs -b 5.5.3 -e '^bar_' -n Lib::Foo foo.h

# Makefile.PL, içinde -lrpc kitaplığını arayacaktır.
# ek dizin /opt/net/lib
h2xs rpcsvc/users -L/opt/net/lib -lrpc

# Uzantı DCE::rgynbase'dir
# "sec_rgy_" öneki Perl işlev adlarından çıkarıldı
h2xs -n DCE::rgynbase -p sec_rgy_ dce/rgynbase

# Uzantı DCE::rgynbase'dir
# "sec_rgy_" öneki Perl işlev adlarından çıkarıldı
sec_rgy_wildcard_name için # altyordam oluşturuldu ve
# sec_rgy_wildcard_sid
h2xs -n DCE::rgynbase -p sec_rgy_ \
-s sec_rgy_wildcard_name,sec_rgy_wildcard_sid dce/rgynbase

# Perl.h'de tanımlamalar olmadan, ancak işlev bildirimleriyle XS yapın
# perl.h'den görülebilir. Uzantının adı perl1'dir.
# Perl.h'yi tararken, -DEXT=harici -DdEXT= -DINIT(x)= tanımlayın
# Dize kabuğa iletildiği için aşağıda fazladan ters eğik çizgi var.
# Perl başlık dosyalarına sahip bir dizinin
# yolu dahil etmek için otomatik olarak eklenebilir.
h2xs -xAn perl1 -F "-DEXT=harici -DdEXT= -DINIT\(x\)=" perl.h

# Perl.h'den görülebilen proto.h'deki işlev bildirimi ile aynı.
h2xs -xAn Perl2 perl.h,proto.h

# Aynı, ancak yalnızca /^av_/ ile eşleşen işlevleri seçin
h2xs -M '^av_' -xAn perl2 perl.h,proto.h

# Aynı, ancak SV* vb.'yi "opak" türler olarak ele alın
h2xs -o '^[S]V \*$' -M '^av_' -xAn perl2 perl.h,proto.h

Uzatma merkezli on .h ve .c Dosyaları
Bazı işlevleri uygulayan bazı C dosyalarınız olduğunu ve bunlara karşılık gelen
başlık dosyaları. Bu işlevi erişilebilir kılan bir uzantı nasıl oluşturulur?
Perl? Aşağıdaki örnek, başlık dosyalarının arayüz_simple.h ve
arayüz_hairy.hve Perl modülünün "Ext::Ension" olarak adlandırılmasını istiyorsunuz. Eğer ihtiyacın varsa
bazı önişlemci yönergeleri ve/veya harici kitaplıklarla bağlantı, "-F" işaretlerine bakın,
"SEÇENEKLER"de "-L" ve "-l".

Dizin adını bulun
Sahte bir h2xs çalışmasıyla başlayın:

h2xs -Afn Dahili::Ension

Bu adımın tek amacı, gerekli dizinleri oluşturmak ve size bildirmektir.
Bu dizinlerin adları. Çıktıdan, dizinin
uzantı Uzantı.

C dosyalarını kopyalayın
Başlık dosyalarınızı ve C dosyalarınızı bu dizine kopyalayın Uzantı.

Uzantıyı oluştur
Daha eski otomatik oluşturulmuş dosyaların üzerine yazarak h2xs'i çalıştırın:

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

h2xs başlık dosyalarını arar sonra uzantı dizinine geçerek, bulacaktır
başlık dosyalarınız tamam.

Arşivleyin ve test edin
Her zamanki gibi koş

cd Dahili/Ension
perl Makefile.PL
dağıtmak
yapmak
test yapmak

İpuçları
Mümkün olduğunca erken "make dist" yapmak önemlidir. Bu şekilde kolayca yapabilirsiniz
birleştirme(1) ".h" dosyalarınızı düzenlemeye karar verirseniz, otomatik oluşturulmuş dosyalardaki değişiklikleriniz ve
h2xs'yi yeniden çalıştırın.

Oluşturulan belgedeki belgeleri düzenlemeyi unutmayın. .pm dosyası.

Otomatik oluşturulan dosyaları yalnızca iskelet olarak kabul edin, daha iyi arayüzler icat edebilirsiniz.
h2xs'in tahmin edebileceğinden daha fazla.

Bu bölümü yalnızca bir kılavuz olarak kabul edin, diğer bazı h2xs seçenekleri daha uygun olabilir
ihtiyaçlarınızı.

ÇEVRE


Hiçbir ortam değişkeni kullanılmaz.

onworks.net hizmetlerini kullanarak h2xs'i çevrimiçi kullanın


Ücretsiz Sunucular ve İş İstasyonları

Windows ve Linux uygulamalarını indirin

Linux komutları

Ad