ภาษาอังกฤษภาษาฝรั่งเศสสเปน

Ad


ไอคอน Fav ของ OnWorks

h2xs - ออนไลน์ในคลาวด์

เรียกใช้ h2xs ในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือคำสั่ง h2xs ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


h2xs - แปลงไฟล์ส่วนหัว .h C เป็นนามสกุล Perl

เรื่องย่อ


h2xs [OPTIONS ...] [ไฟล์ส่วนหัว ... [extra_libraries]]

h2xs -h|-?|--ช่วยด้วย

DESCRIPTION


h2xs สร้างนามสกุล Perl จากไฟล์ส่วนหัว C ส่วนขยายจะรวมถึงฟังก์ชั่น
ซึ่งสามารถใช้เพื่อดึงค่าของคำสั่ง #define ใดๆ ที่อยู่ในส่วนหัว C
ไฟล์

พื้นที่ module_name จะใช้เป็นชื่อนามสกุล ถ้า module_name ไม่ใช่
ระบุแล้วชื่อของไฟล์ส่วนหัวแรกจะถูกใช้โดยมีอักขระตัวแรก
ตัวพิมพ์ใหญ่

หากส่วนขยายอาจต้องการไลบรารีเพิ่มเติม ก็ควรรวมไว้ที่นี่ ส่วนขยาย
Makefile.PL จะดูแลตรวจสอบว่าไลบรารีมีอยู่จริงหรือไม่และเป็นอย่างไร
ควรโหลด ควรระบุไลบรารีพิเศษในรูปแบบ -lm -lposix ฯลฯ
เช่นเดียวกับในบรรทัดคำสั่ง cc โดยค่าเริ่มต้น Makefile.PL จะค้นหาผ่าน
เส้นทางไลบรารีที่กำหนดโดย Configure เส้นทางนั้นสามารถเพิ่มได้โดยใส่อาร์กิวเมนต์
ของแบบฟอร์ม -L/อื่น/ไลบรารี/เส้นทาง ในอาร์กิวเมนต์ extra-libraries

ทั้งๆ ที่ชื่อของมัน h2xs อาจใช้เพื่อสร้างโมดูล Perl บริสุทธิ์โครงกระดูก ดู
-X ตัวเลือก

OPTIONS


-A, --ละเว้น-autoload
ละเว้นสิ่งอำนวยความสะดวกการโหลดอัตโนมัติทั้งหมด นี่ก็เหมือนกับ -c แต่ยังลบ
คำสั่ง "use AutoLoader" จากไฟล์ .pm

-B, --รุ่นเบต้า
ใช้หมายเลขเวอร์ชันรูปแบบอัลฟ่า/เบต้า ทำให้หมายเลขเวอร์ชันเป็น "0.00_01" เว้นแต่
-v ระบุไว้

-C, --ละเว้นการเปลี่ยนแปลง
ละเว้นการสร้าง การเปลี่ยนแปลง และเพิ่มส่วนประวัติลงในเทมเพลต POD

-F, --cpp-ธง=เพิ่มธง
แฟล็กเพิ่มเติมเพื่อระบุตัวประมวลผลล่วงหน้า C เมื่อสแกนส่วนหัวสำหรับฟังก์ชัน
ประกาศ เขียนตัวเลือกเหล่านี้ในการสร้าง Makefile.PL เกินไป

-M, --func-หน้ากาก=ปกติ การแสดงออก
เลือกฟังก์ชัน/มาโครเพื่อประมวลผล

-O, --เขียนทับ-ตกลง
อนุญาตให้เขียนทับไดเร็กทอรีส่วนขยายที่มีอยู่ก่อน

-P, --ละเว้น-pod
ละเว้นส่วน stub POD ที่สร้างอัตโนมัติ

-X, --ละเว้น-XS
ละเว้นส่วน XS ใช้เพื่อสร้างโมดูล Perl บริสุทธิ์โครงกระดูก "-c" และ "-f" คือ
เปิดใช้งานโดยปริยาย

-a, --gen-accessors
สร้างเมธอด accessor สำหรับแต่ละองค์ประกอบของ struct และ union ที่สร้างขึ้น
เมธอดถูกตั้งชื่อตามชื่อองค์ประกอบ จะคืนค่าปัจจุบันของ
องค์ประกอบถ้าถูกเรียกโดยไม่มีอาร์กิวเมนต์เพิ่มเติม และจะตั้งค่าองค์ประกอบเป็น
ค่าที่ให้มา (และคืนค่าใหม่) หากถูกเรียกด้วยอาร์กิวเมนต์เพิ่มเติม
โครงสร้างฝังตัวและสหภาพแรงงานถูกส่งกลับเป็นตัวชี้แทนที่จะเป็นตัวสมบูรณ์
โครงสร้างเพื่ออำนวยความสะดวกการโทรแบบล่ามโซ่

วิธีการเหล่านี้ทั้งหมดใช้กับประเภท Ptr สำหรับโครงสร้าง เพิ่มเติมอีก XNUMX วิธี
ถูกสร้างขึ้นสำหรับประเภทโครงสร้างเอง "_to_ptr" ซึ่งส่งคืน Ptr type
ชี้ไปที่โครงสร้างเดียวกัน และวิธีการ "ใหม่" เพื่อสร้างและคืนค่าใหม่
โครงสร้างเริ่มต้นเป็นศูนย์

-b, --compat-รุ่น=รุ่น
สร้างไฟล์ .pm ซึ่งเข้ากันได้กับเวอร์ชัน Perl ที่ระบุ

สำหรับเวอร์ชัน < 5.6.0 การเปลี่ยนแปลงคือ
- ไม่ใช้ 'ของเรา' (ใช้ 'use vars' แทน)
- ไม่มี 'ใช้คำเตือน'

การระบุเวอร์ชันที่เข้ากันได้สูงกว่าเวอร์ชันของ Perl ที่คุณใช้อยู่
เรียกใช้ h2xs จะไม่มีผลใดๆ หาก h2xs ที่ไม่ระบุค่าเริ่มต้นจะเข้ากันได้กับ
เวอร์ชันของ Perl ที่คุณใช้เพื่อเรียกใช้ h2xs

-c, --ละเว้นค่าคงที่
ละเว้น "constant()" จากไฟล์ .xs และ "AUTOLOAD" เฉพาะที่เกี่ยวข้องจากไฟล์
ไฟล์ .pm

-d, --debug
เปิดการดีบักข้อความ

-e, --ละ-enums=[ปกติ การแสดงออก]
If ปกติ การแสดงออก ไม่ได้รับ ให้ข้ามค่าคงที่ทั้งหมดที่กำหนดไว้ใน C
การแจงนับ มิฉะนั้นให้ข้ามเฉพาะค่าคงที่ที่กำหนดไว้ใน enum ซึ่ง
ชื่อตรงกัน ปกติ การแสดงออก.

ตั้งแต่ ปกติ การแสดงออก เป็นทางเลือก ตรวจสอบให้แน่ใจว่าสวิตช์นี้ตามด้วย at
สวิตช์อื่นอย่างน้อยหนึ่งตัวหากคุณละเว้น ปกติ การแสดงออก และมีข้อโต้แย้งที่รอดำเนินการอยู่บ้าง
เช่น ชื่อไฟล์ส่วนหัว ไม่เป็นไร:

h2xs -e -n โมดูล::Foo foo.h

ไม่เป็นไร:

h2xs -n โมดูล::Foo -e foo.h

ในระยะหลัง foo.h ถูกนำมาเป็น ปกติ การแสดงออก.

-f, --บังคับ
อนุญาตให้สร้างส่วนขยายสำหรับส่วนหัวแม้ว่าจะไม่พบส่วนหัวนั้นใน
มาตรฐานรวมถึงไดเร็กทอรี

-g, --ทั่วโลก
รวมรหัสสำหรับการจัดเก็บข้อมูลคงที่อย่างปลอดภัยในไฟล์ .xs นามสกุลที่ไม่
ใช้ประโยชน์จากข้อมูลแบบคงที่สามารถละเว้นตัวเลือกนี้

-h, -?, --ช่วยด้วย
พิมพ์การใช้งาน ความช่วยเหลือ และเวอร์ชันสำหรับ h2xs นี้และออก

-k, --ละเว้น-const-func
สำหรับอาร์กิวเมนต์ของฟังก์ชันที่ประกาศเป็น "const" ให้ละเว้นแอตทริบิวต์ const ในตัวสร้าง
รหัส XS

-m, --gen-ผูก-var
การทดลอง: สำหรับแต่ละตัวแปรที่ประกาศในไฟล์ส่วนหัว ให้ประกาศ perl
ตัวแปรที่มีชื่อเดียวกันผูกติดกับตัวแปร C อย่างน่าอัศจรรย์

-n, --ชื่อ=module_name
ระบุชื่อที่จะใช้สำหรับนามสกุล เช่น -n RPC::DCE

-o, --ทึบแสง-re=ปกติ การแสดงออก
ใช้ประเภทข้อมูล "ทึบ" สำหรับประเภท C ที่ตรงกับนิพจน์ทั่วไป แม้ว่า
ประเภทเหล่านี้เป็น "typedef" - เทียบเท่ากับประเภทจาก typemaps ไม่ควรใช้
ไม่มี -x.

สิ่งนี้อาจมีประโยชน์เนื่องจากพูดประเภทที่เป็น "typedef" - เทียบเท่ากับจำนวนเต็ม may
เป็นตัวแทนของหมายเลขอ้างอิงที่เกี่ยวข้องกับระบบปฏิบัติการ และอาจต้องการทำงานกับหมายเลขอ้างอิงเหล่านี้ในแบบ OO
เช่นเดียวกับใน "$handle->do_something()" ใช้ "-o" หากคุณต้องการจัดการทั้งหมด
ประเภท "typedef" เป็นประเภททึบแสง

ประเภทเพื่อให้ตรงกันเป็นสีขาว (ยกเว้นเครื่องหมายจุลภาคซึ่งไม่มีช่องว่างมาก่อน
พวกเขาและ "*" หลายตัวซึ่งไม่มีช่องว่างระหว่างพวกเขา)

-p, --remove-คำนำหน้า=อุปสรรค
ระบุคำนำหน้าที่ควรลบออกจากชื่อฟังก์ชัน Perl เช่น
-p sec_rgy_ เป็นการตั้งค่า XS คำนำ คีย์เวิร์ดและลบคำนำหน้าออกจากฟังก์ชัน
ที่โหลดอัตโนมัติผ่านกลไก "constant()"

-s, --const-ย่อย=ย่อย 1, ย่อย 2
สร้างรูทีนย่อย Perl สำหรับมาโครที่ระบุแทนที่จะโหลดอัตโนมัติด้วย
คงที่() รูทีนย่อย มาโครเหล่านี้ถือว่ามีประเภทส่งคืนของ ถัง *,
เช่น -s sec_rgy_wildcard_name,sec_rgy_wildcard_sid

-t, --default-ประเภท=ชนิด
ระบุประเภทภายในที่ คงที่() กลไกที่ใช้สำหรับมาโคร ค่าเริ่มต้น
คือ IV (จำนวนเต็มลงนาม) ขณะนี้พบมาโครทั้งหมดระหว่างการสแกนส่วนหัว
กระบวนการจะถือว่ามีประเภทนี้ เวอร์ชันในอนาคตของ "h2xs" อาจได้รับ
ความสามารถในการคาดเดาการศึกษา

--ใช้-ใหม่-ทดสอบ
เมื่อ --compat-รุ่น (-b) จะแสดงการทดสอบที่สร้างขึ้นจะใช้ "Test::More"
แทนที่จะเป็น "Test" ซึ่งเป็นค่าเริ่มต้นสำหรับเวอร์ชันก่อน 5.6.2 "ทดสอบ :: เพิ่มเติม" จะ
ถูกเพิ่มใน PREREQ_PM ใน "Makefile.PL" ที่สร้างขึ้น

--ใช้-แบบทดสอบเก่า
จะบังคับให้สร้างรหัสทดสอบที่ใช้โมดูล "ทดสอบ" ที่เก่ากว่า

--ข้าม-ส่งออก
ห้ามใช้ "ผู้ส่งออก" และ/หรือส่งออกสัญลักษณ์ใดๆ

--ข้าม-ppport
อย่าใช้ "Devel::PPPort": ไม่มีการพกพาไปยังเวอร์ชันที่เก่ากว่า

--skip-โหลดอัตโนมัติ
อย่าใช้โมดูล "AutoLoader"; แต่ให้ คงที่() ฟังก์ชั่นและ "sub
AUTOLOAD" สำหรับค่าคงที่

--ข้าม-เข้มงวด
อย่าใช้ Pragma "เข้มงวด"

--ข้ามคำเตือน
อย่าใช้ "คำเตือน" ของ Pragma

-v, --รุ่น=รุ่น
ระบุหมายเลขเวอร์ชันสำหรับส่วนขยายนี้ เพิ่มหมายเลขเวอร์ชันนี้ลงใน
แม่แบบ ค่าเริ่มต้นคือ 0.01 หรือ 0.00_01 หากระบุ "-B" เวอร์ชัน
ที่ระบุควรเป็นตัวเลข

-x, --autogen-xsubs
สร้าง XSUB โดยอัตโนมัติตามการประกาศฟังก์ชันในไฟล์ส่วนหัว NS
ควรติดตั้งแพ็คเกจ "C::Scan" หากระบุตัวเลือกนี้ ชื่อของ
ไฟล์ส่วนหัวอาจดูเหมือน "NAME1,NAME2" ในกรณีนี้ NAME1 ถูกใช้แทน
สตริงที่ระบุ แต่ XSUB ถูกปล่อยออกมาสำหรับการประกาศที่รวมจาก file . เท่านั้น
ชื่อ2.

โปรดทราบว่าอาร์กิวเมนต์/ค่าส่งคืนบางประเภทสำหรับฟังก์ชันอาจส่งผลให้
XSUB-declarations/typemap-entries ที่ต้องการการแก้ไขด้วยมือ ดังกล่าวอาจเป็นวัตถุซึ่ง
ไม่สามารถแปลงจาก/เป็นตัวชี้ (เช่น "ยาวยาว") ตัวชี้เป็นฟังก์ชัน หรือ
อาร์เรย์ ดูเพิ่มเติมที่หัวข้อ "ข้อจำกัดของ -x".

ตัวอย่าง


# พฤติกรรมเริ่มต้น ส่วนขยายคือ Rusers
h2xs rpcsvc/ผู้ใช้

# เหมือนกัน แต่นามสกุล RUSERS
h2xs -n RUSERS rpcsvc/rusers

# ส่วนขยายคือ rpcsvc::rusers ยังคงพบ
h2xs rpcsvc::rusers

# ส่วนขยายคือ ONC::RPC ยังคงพบ
h2xs -n ONC::RPC rpcsvc/rusers

# ไม่มีค่าคงที่ () หรือ AUTOLOAD
h2xs -c rpcsvc/ผู้ใช้

# สร้างเทมเพลตสำหรับส่วนขยายชื่อ RPC
h2xs -cfn RPC

# ส่วนขยายคือ ONC::RPC
h2xs -cfn ONC::RPC

# Extension เป็นโมดูล Perl ล้วนๆ ที่ไม่มีโค้ด XS
h2xs -X ของฉัน::โมดูล

# Extension is Lib::Foo ซึ่งใช้งานได้อย่างน้อยกับ Perl5.005_03
# ค่าคงที่ถูกสร้างขึ้นสำหรับ #defines ทั้งหมดและ enums h2xs สามารถค้นหาได้
#ในfoo.h.
h2xs -b 5.5.3 -n Lib::Foo foo.h

# Extension is Lib::Foo ซึ่งใช้งานได้อย่างน้อยกับ Perl5.005_03
# ค่าคงที่ถูกสร้างขึ้นสำหรับ #defines ทั้งหมด แต่สำหรับ enums เท่านั้น
# ที่มีชื่อไม่ขึ้นต้นด้วย 'bar_'
h2xs -b 5.5.3 -e '^bar_' -n Lib::Foo foo.h

# Makefile.PL จะค้นหาไลบรารี -lrpc ใน
# ไดเรกทอรีเพิ่มเติม /opt/net/lib
h2xs rpcsvc/rusers -L/opt/net/lib -lrpc

# ส่วนขยายคือ DCE::rgynbase
# คำนำหน้า "sec_rgy_" หลุดจากชื่อฟังก์ชัน perl
h2xs -n DCE::rgynbase -p sec_rgy_ dce/rgynbase

# ส่วนขยายคือ DCE::rgynbase
# คำนำหน้า "sec_rgy_" หลุดจากชื่อฟังก์ชัน perl
สร้าง # รูทีนย่อยสำหรับ sec_rgy_wildcard_name และ
# sec_rgy_wildcard_sid
h2xs -n DCE::rgynbase -p sec_rgy_ \
-s sec_rgy_wildcard_name,sec_rgy_wildcard_sid dc/rgynbase

# สร้าง XS โดยไม่มีการกำหนดใน perl.h แต่มีการประกาศฟังก์ชัน
# มองเห็นได้จาก perl.h. ชื่อของนามสกุลคือ perl1
# เมื่อสแกน perl.h ให้กำหนด -DEXT=extern -DdEXT= -DINIT(x)=
# แบ็กสแลชพิเศษด้านล่างเนื่องจากสตริงถูกส่งไปยังเชลล์
# โปรดทราบว่าไดเร็กทอรีที่มีไฟล์ส่วนหัว perl จะ
# ถูกเพิ่มโดยอัตโนมัติเพื่อรวมเส้นทาง
h2xs -xAn perl1 -F "-DEXT=extern -DdEXT= -DINIT\(x\)=" perl.h

# เช่นเดียวกับการประกาศฟังก์ชันใน proto.h ที่มองเห็นได้จาก perl.h
h2xs -xAn perl2 perl.h, proto.h

# เหมือนกัน แต่เลือกเฉพาะฟังก์ชั่นที่ตรงกับ /^av_/
h2xs -M '^av_' -xAn perl2 perl.h,proto.h

# เหมือนกันแต่ถือว่า SV* ฯลฯ เป็นประเภท "ทึบ"
h2xs -o '^[S]V \*$' -M '^av_' -xAn perl2 perl.h,proto.h

นามสกุล ตาม on .h และ .c ไฟล์
สมมติว่าคุณมีไฟล์ C บางไฟล์ที่ใช้ฟังก์ชันบางอย่างและไฟล์ที่เกี่ยวข้อง
ไฟล์ส่วนหัว วิธีสร้างส่วนขยายที่ทำให้ฟังก์ชันนี้สามารถเข้าถึงได้ใน
เพิร์ล? ตัวอย่างด้านล่างถือว่าไฟล์ส่วนหัวเป็น interface_simple.h และ
interface_hairy.hและคุณต้องการให้โมดูล Perl ตั้งชื่อเป็น "Ext::Ension" ถ้าคุณต้องการ
คำสั่งตัวประมวลผลล่วงหน้าและ/หรือการเชื่อมโยงกับไลบรารีภายนอก ดูแฟล็ก "-F"
"-L" และ "-l" ใน "ตัวเลือก"

ค้นหาชื่อไดเร็กทอรี
เริ่มต้นด้วยการวิ่งจำลอง h2xs:

h2xs -Afn ต่อ::Ension

จุดประสงค์เดียวของขั้นตอนนี้คือการสร้างไดเร็กทอรีที่จำเป็น และแจ้งให้คุณทราบ
ชื่อของไดเร็กทอรีเหล่านี้ จากผลลัพธ์คุณจะเห็นว่าไดเร็กทอรีสำหรับ
นามสกุลคือ ส่วนขยาย.

คัดลอกไฟล์ C
คัดลอกไฟล์ส่วนหัวและไฟล์ C ไปยังไดเร็กทอรีนี้ ส่วนขยาย.

สร้างส่วนขยาย
เรียกใช้ h2xs เขียนทับไฟล์ที่สร้างอัตโนมัติที่เก่ากว่า:

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

h2xs ค้นหาไฟล์ส่วนหัว หลังจาก เปลี่ยนเป็นไดเร็กทอรีส่วนขยายจึงจะพบ
ไฟล์ส่วนหัวของคุณตกลง

เก็บถาวรและทดสอบ
ตามปกติให้วิ่ง

ซีดีต่อ/Ension.cd
เพิร์ล Makefile.PL
ทำให้ dist
ทำ
ทำแบบทดสอบ

คำแนะนำ
สิ่งสำคัญคือต้องทำ "dist" ให้เร็วที่สุด ด้วยวิธีนี้คุณสามารถได้อย่างง่ายดาย
ผสาน(1) การเปลี่ยนแปลงของคุณกับไฟล์ที่สร้างอัตโนมัติ หากคุณตัดสินใจที่จะแก้ไขไฟล์ ".h" และ
รันซ้ำ h2xs

อย่าลืมแก้ไขเอกสารในไฟล์ที่สร้างขึ้น .pm ไฟล์

พิจารณาไฟล์ที่สร้างอัตโนมัติเป็นโครงกระดูกเท่านั้น คุณอาจคิดค้นอินเทอร์เฟซที่ดีขึ้น
มากกว่าที่ h2xs สามารถเดาได้

พิจารณาส่วนนี้เพื่อเป็นแนวทางเท่านั้น ตัวเลือกอื่นๆ ของ h2xs อาจเหมาะสมกว่า
ความต้องการของคุณ

และพวกเรา


ไม่มีการใช้ตัวแปรสภาพแวดล้อม

ใช้ h2xs ออนไลน์โดยใช้บริการ onworks.net


เซิร์ฟเวอร์และเวิร์กสเตชันฟรี

ดาวน์โหลดแอพ Windows & Linux

คำสั่ง Linux

Ad