EnglishFrenchSpanyol

Ad


Favicon OnWorks

h2xs - Dalam Talian di Awan

Jalankan h2xs dalam penyedia pengehosan percuma OnWorks melalui Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS

Ini ialah arahan h2xs yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.

JADUAL:

NAMA


h2xs - tukar fail pengepala .h C kepada sambungan Perl

SINOPSIS


h2xs [PILIHAN ...] [fail kepala ... [perpustakaan_tambahan]]

h2xs -h|-?|- membantu

DESCRIPTION


h2xs membina sambungan Perl daripada fail pengepala C. Sambungan akan termasuk fungsi
yang boleh digunakan untuk mendapatkan semula nilai mana-mana pernyataan #define yang berada dalam pengepala C
fail.

. modul_nama akan digunakan untuk nama sambungan. Jika module_name tidak
dibekalkan maka nama fail pengepala pertama akan digunakan, dengan aksara pertama
huruf besar.

Jika sambungan mungkin memerlukan perpustakaan tambahan, ia harus disertakan di sini. Sambungan
Makefile.PL akan mengurus menyemak sama ada perpustakaan itu benar-benar wujud dan bagaimana ia
harus dimuatkan. Perpustakaan tambahan hendaklah dinyatakan dalam bentuk -lm -lposix, dsb,
sama seperti pada baris arahan cc. Secara lalai, Makefile.PL akan mencari melalui
laluan perpustakaan ditentukan oleh Konfigurasi. Laluan itu boleh ditambah dengan memasukkan hujah
daripada borang tersebut -L/lain/perpustakaan/laluan dalam hujah perpustakaan tambahan.

Di sebalik namanya, h2xs juga boleh digunakan untuk mencipta modul Perl tulen rangka. Lihat
-X pilihan.

PILIHAN


-A, --abaikan-autoload
Abaikan semua kemudahan autoload. Ini sama dengan -c tetapi juga mengeluarkan
pernyataan "use AutoLoader" daripada fail .pm.

-B, --versi-beta
Gunakan nombor versi gaya alfa/beta. Menyebabkan nombor versi menjadi "0.00_01" melainkan
-v dinyatakan.

-C, --tinggalkan-perubahan
Meninggalkan penciptaan Perubahan fail, dan menambah bahagian HISTORY pada templat POD.

-F, --cpp-bendera=tambah bendera
Bendera tambahan untuk ditentukan kepada prapemproses C semasa mengimbas pengepala untuk fungsi
pengisytiharan. Menulis pilihan ini dalam yang dihasilkan Makefile.PL juga.

-M, --fungsi-topeng=kerap ungkapan
memilih fungsi/makro untuk diproses.

-O, --tulis ganti-ok
Membenarkan direktori sambungan yang sedia ada ditimpa.

-P, --abaikan-pod
Abaikan bahagian POD rintisan yang dijana secara automatik.

-X, --tinggalkan-XS
Tinggalkan bahagian XS. Digunakan untuk menjana modul Perl tulen rangka. "-c" dan "-f" ialah
didayakan secara tersirat.

-a, --gen-aksesori
Hasilkan kaedah pengakses untuk setiap elemen struktur dan kesatuan. Yang dihasilkan
kaedah dinamakan sempena nama elemen; akan mengembalikan nilai semasa bagi
elemen jika dipanggil tanpa hujah tambahan; dan akan menetapkan elemen kepada
nilai yang dibekalkan (dan kembalikan nilai baharu) jika dipanggil dengan argumen tambahan.
Struktur dan kesatuan tertanam dikembalikan sebagai penunjuk dan bukannya lengkap
struktur, untuk memudahkan panggilan berantai.

Kaedah ini semuanya digunakan untuk jenis Ptr untuk struktur; tambahan dua kaedah
dibina untuk jenis struktur itu sendiri, "_to_ptr" yang mengembalikan jenis Ptr
menunjuk kepada struktur yang sama, dan kaedah "baru" untuk membina dan mengembalikan yang baru
struktur, dimulakan kepada sifar.

-b, --versi-compat=versi
Menghasilkan fail .pm yang serasi ke belakang dengan versi perl yang ditentukan.

Untuk versi < 5.6.0, perubahan adalah.
- tiada penggunaan 'kami' (gunakan 'use vars' sebaliknya)
- tiada 'amaran guna'

Menentukan versi keserasian yang lebih tinggi daripada versi perl yang anda gunakan
jalankan h2xs tidak akan memberi kesan. Jika h2xs tidak ditentukan akan lalai kepada keserasian dengan
versi perl yang anda gunakan untuk menjalankan h2xs.

-c, --tinggalkan-pemalar
Abaikan "constant()" daripada fail .xs dan "AUTOLOAD" khusus yang sepadan daripada
fail .pm.

-d, --menyahpepijat
Hidupkan mesej penyahpepijatan.

-e, --meninggalkan-enum=[kerap ungkapan]
If kerap ungkapan tidak diberikan, langkau semua pemalar yang ditakrifkan dalam C
penghitungan. Jika tidak, langkau hanya pemalar yang ditakrifkan dalam enum yang
padanan nama kerap ungkapan.

Sejak kerap ungkapan adalah pilihan, pastikan suis ini diikuti dengan di
sekurang-kurangnya satu suis lain jika anda tinggalkan kerap ungkapan dan mempunyai beberapa hujah yang belum selesai
seperti nama fail tajuk. Ini ok:

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

Ini tidak ok:

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

Dalam yang terakhir, foo.h diambil sebagai kerap ungkapan.

-f, - kekuatan
Membenarkan sambungan dibuat untuk pengepala walaupun pengepala itu tidak ditemui di dalamnya
standard termasuk direktori.

-g, --global
Sertakan kod untuk menyimpan data statik dengan selamat dalam fail .xs. Sambungan yang tidak
menggunakan data statik boleh mengabaikan pilihan ini.

-h, -?, - membantu
Cetak penggunaan, bantuan dan versi untuk h2xs ini dan keluar.

-k, --abaikan-const-func
Untuk argumen fungsi yang diisytiharkan sebagai "const", tinggalkan atribut const dalam yang dihasilkan
kod XS.

-m, --gen-terikat-var
Eksperimen: untuk setiap pembolehubah yang diisytiharkan dalam fail pengepala, isytiharkan perl
pembolehubah dengan nama yang sama terikat secara ajaib kepada pembolehubah C.

-n, --nama=modul_nama
Menentukan nama untuk digunakan untuk sambungan, cth, -n RPC::DCE

-o, --legap-semula=kerap ungkapan
Gunakan jenis data "legap" untuk jenis C yang dipadankan dengan ungkapan biasa, walaupun jika
jenis ini adalah "typedef"-setara dengan jenis daripada peta taip. Tidak boleh digunakan
tanpa -x.

Ini mungkin berguna kerana, katakan, jenis yang "typedef"-setara dengan integer mungkin
mewakili pemegang berkaitan OS, dan seseorang mungkin mahu bekerja dengan pemegang ini dalam cara OO,
seperti dalam "$handle->do_something()". Gunakan "-o ." jika anda ingin mengendalikan semua
jenis "typedef" ed sebagai jenis legap.

Jenis-untuk-padanan adalah bercat putih (kecuali koma, yang tidak mempunyai ruang putih sebelum ini
mereka, dan berbilang "*" yang tidak mempunyai ruang kosong di antara mereka).

-p, --alih-awalan=awalan
Tentukan awalan yang harus dialih keluar daripada nama fungsi Perl, cth,
-p sec_rgy_ Ini menyediakan XS PERMULAAN kata kunci dan mengalih keluar awalan daripada fungsi
yang dimuatkan secara automatik melalui mekanisme "constant()".

-s, --const-subs=sub1, sub2
Buat subrutin perl untuk makro yang ditentukan dan bukannya autoload dengan
malar() subrutin. Makro ini diandaikan mempunyai jenis pulangan tangki *,
cth, -s sec_rgy_wildcard_name, sec_rgy_wildcard_sid.

-t, --jenis lalai=jenis
Nyatakan jenis dalaman yang malar() kegunaan mekanisme untuk makro. lalai
ialah IV (integer bertanda). Pada masa ini semua makro ditemui semasa pengimbasan pengepala
proses akan diandaikan mempunyai jenis ini. Versi masa depan "h2xs" mungkin mendapat
keupayaan untuk membuat tekaan yang berpendidikan.

--gunakan-ujian-baharu
Bila --versi-compat (-b) hadir ujian yang dihasilkan akan menggunakan "Ujian::Lagi"
bukannya "Ujian" yang merupakan lalai untuk versi sebelum 5.6.2. "Ujian::Lagi" akan
ditambahkan pada PREREQ_PM dalam "Makefile.PL" yang dihasilkan.

--gunakan-ujian lama
Akan memaksa penjanaan kod ujian yang menggunakan modul "Ujian" yang lebih lama.

--langkau-pengeksport
Jangan gunakan "Pengeksport" dan/atau eksport sebarang simbol.

--langkau-ppport
Jangan gunakan "Devel::PPPort": tiada mudah alih ke versi yang lebih lama.

--langkau-autoloader
Jangan gunakan modul "AutoLoader"; tetapi simpan malar() fungsi dan "sub
AUTOLOAD" untuk pemalar.

--skip-ketat
Jangan gunakan pragma "ketat".

--langkau-amaran
Jangan gunakan "amaran" pragma.

-v, --versi=versi
Tentukan nombor versi untuk sambungan ini. Nombor versi ini ditambahkan pada
templat. Lalai ialah 0.01, atau 0.00_01 jika "-B" ditentukan. Versi
dinyatakan hendaklah angka.

-x, --autogen-xsubs
Menjana XSUB secara automatik berdasarkan pengisytiharan fungsi dalam fail pengepala. The
pakej "C::Scan" harus dipasang. Jika pilihan ini ditentukan, nama bagi
fail pengepala mungkin kelihatan seperti "NAME1,NAME2". Dalam kes ini NAME1 digunakan dan bukannya
rentetan tertentu, tetapi XSUB dikeluarkan hanya untuk pengisytiharan yang disertakan daripada fail
NAMA2.

Ambil perhatian bahawa beberapa jenis argumen/nilai pulangan untuk fungsi mungkin terhasil
XSUB-pengisytiharan/peta taip-entri yang memerlukan penyuntingan tangan. Yang demikian mungkin objek yang
tidak boleh ditukar daripada/ke penunjuk (seperti "panjang panjang"), penunjuk kepada fungsi, atau
tatasusunan. Lihat juga bahagian mengenai "HAD daripada -x".

CONTOH


# Tingkah laku lalai, sambungan ialah Rusers
h2xs rpcsvc/pengguna

# Sama, tetapi sambungan adalah RUSERS
h2xs -n RUSERS rpcsvc/rusers

# Sambungan ialah rpcsvc::rusers. Masih menjumpai
h2xs rpcsvc::pengguna

# Sambungan ialah ONC::RPC. Masih menjumpai
h2xs -n ONC::RPC rpcsvc/pengguna

# Tanpa pemalar() atau AUTOLOAD
h2xs -c rpcsvc/pengguna

# Mencipta templat untuk sambungan bernama RPC
h2xs -cfn RPC

# Sambungan ialah ONC::RPC.
h2xs -cfn ONC::RPC

# Sambungan ialah modul Perl tulen tanpa kod XS.
h2xs -X Saya::Modul

# Sambungan ialah Lib::Foo yang berfungsi sekurang-kurangnya dengan Perl5.005_03.
# Pemalar dicipta untuk semua #defines dan enum yang boleh ditemui oleh h2xs
# dalam foo.h.
h2xs -b 5.5.3 -n Lib::Foo foo.h

# Sambungan ialah Lib::Foo yang berfungsi sekurang-kurangnya dengan Perl5.005_03.
# Pemalar dicipta untuk semua #defines tetapi hanya untuk enum
# yang namanya tidak bermula dengan 'bar_'.
h2xs -b 5.5.3 -e '^bar_' -n Lib::Foo foo.h

# Makefile.PL akan mencari perpustakaan -lrpc in
# direktori tambahan /opt/net/lib
h2xs rpcsvc/rusers -L/opt/net/lib -lrpc

# Sambungan ialah DCE::rgynbase
# awalan "sec_rgy_" digugurkan daripada nama fungsi perl
h2xs -n DCE::rgynbase -p sec_rgy_ dce/rgynbase

# Sambungan ialah DCE::rgynbase
# awalan "sec_rgy_" digugurkan daripada nama fungsi perl
# subrutin dicipta untuk sec_rgy_wildcard_name dan
# sec_rgy_wildcard_sid
h2xs -n DCE::rgynbase -p sec_rgy_ \
-s sec_rgy_wildcard_name, sec_rgy_wildcard_sid dce/rgynbase

# Buat XS tanpa definisi dalam perl.h, tetapi dengan pengisytiharan fungsi
# kelihatan daripada perl.h. Nama sambungan ialah perl1.
# Semasa mengimbas perl.h, tentukan -DEXT=extern -DdEXT= -DINIT(x)=
# Garis miring ke belakang tambahan di bawah kerana rentetan dihantar ke cangkang.
# Ambil perhatian bahawa direktori dengan fail pengepala perl akan
# ditambah secara automatik untuk memasukkan laluan.
h2xs -xAn perl1 -F "-DEXT=extern -DdEXT= -DINIT\(x\)=" perl.h

# Sama dengan pengisytiharan fungsi dalam proto.h seperti yang boleh dilihat daripada perl.h.
h2xs -xPerl2 perl.h,proto.h

# Sama tetapi pilih hanya fungsi yang sepadan dengan /^av_/
h2xs -M '^av_' -xPerl2 perl.h,proto.h

# Sama tetapi layan SV* dsb sebagai jenis "legap".
h2xs -o '^[S]V \*$' -M '^av_' -xAn perl2 perl.h,proto.h

Lanjutan berdasarkan on .h and .c fail
Katakan anda mempunyai beberapa fail C yang melaksanakan beberapa fungsi, dan yang sepadan
fail pengepala. Cara membuat sambungan yang menjadikan fungsi ini boleh diakses dalam
Perl? Contoh di bawah menganggap bahawa fail pengepala adalah antara muka_mudah.h and
antara muka_berbulu.h, dan anda mahu modul perl dinamakan sebagai "Ext::Ension". Jika kamu perlu
beberapa arahan prapemproses dan/atau menghubungkan dengan perpustakaan luaran, lihat bendera "-F",
"-L" dan "-l" dalam "OPTIONS".

Cari nama direktori
Mulakan dengan larian tiruan h2xs:

h2xs -Afn Ext::Ension

Satu-satunya tujuan langkah ini adalah untuk mencipta direktori yang diperlukan dan memberitahu anda
nama-nama direktori ini. Daripada output anda boleh melihat bahawa direktori untuk
sambungannya ialah Sambungan.

Salin fail C
Salin fail pengepala dan fail C anda ke direktori ini Sambungan.

Buat sambungan
Jalankan h2xs, tulis ganti fail autogenerasi lama:

h2xs -Oxan Ext::Antara muka Ension_simple.h antara muka_hairy.h

h2xs mencari fail pengepala selepas menukar kepada direktori sambungan, jadi ia akan mencari
fail pengepala anda OK.

Arkib dan ujian
Seperti biasa, lari

cd Ext/Ension
perl Makefile.PL
buat dist
membuat
membuat ujian

Petua
Adalah penting untuk melakukan "make dist" seawal mungkin. Dengan cara ini anda boleh dengan mudah
bergabung(1) perubahan anda kepada fail yang dijana secara automatik jika anda memutuskan untuk mengedit fail ".h" anda dan
jalankan semula h2xs.

Jangan lupa untuk mengedit dokumentasi dalam yang dihasilkan .pm fail.

Pertimbangkan fail yang dijana secara automatik sebagai rangka sahaja, anda mungkin mencipta antara muka yang lebih baik
daripada apa yang h2xs dapat meneka.

Pertimbangkan bahagian ini sebagai garis panduan sahaja, beberapa pilihan lain bagi h2xs mungkin lebih sesuai
keperluan anda.

PERSEKITARAN


Tiada pembolehubah persekitaran digunakan.

Gunakan h2xs dalam talian menggunakan perkhidmatan onworks.net


Pelayan & Stesen Kerja Percuma

Muat turun apl Windows & Linux

Arahan Linux

Ad