Tiếng AnhTiếng PhápTiếng Tây Ban Nha

Ad


Biểu tượng yêu thích OnWorks

h2xs - Trực tuyến trên đám mây

Chạy h2xs trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks qua Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

Đây là lệnh h2xs có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


h2xs - chuyển đổi tệp tiêu đề .h C thành phần mở rộng Perl

SYNOPSIS


h2x [LỰA CHỌN ...] [tệp tiêu đề ... [extra_libraries]]

h2x -h|-?|--Cứu giúp

MÔ TẢ


h2x xây dựng một phần mở rộng Perl từ các tệp tiêu đề C. Phần mở rộng sẽ bao gồm các chức năng
có thể được sử dụng để truy xuất giá trị của bất kỳ câu lệnh #define nào nằm trong tiêu đề C.
các tập tin.

Sản phẩm tên_mô-đun sẽ được sử dụng cho tên của phần mở rộng. Nếu module_name không
được cung cấp thì tên của tệp tiêu đề đầu tiên sẽ được sử dụng, với ký tự đầu tiên
viết hoa.

Nếu tiện ích mở rộng có thể cần thêm thư viện, chúng nên được đưa vào đây. Phần mở rộng
Makefile.PL sẽ kiểm tra xem các thư viện có thực sự tồn tại hay không và cách chúng
nên được tải. Các thư viện bổ sung phải được chỉ định trong biểu mẫu -lm -lposix, v.v.,
giống như trên dòng lệnh cc. Theo mặc định, Makefile.PL sẽ tìm kiếm thông qua
đường dẫn thư viện được xác định bởi Cấu hình. Đường dẫn đó có thể được tăng cường bằng cách bao gồm các đối số
của hình thức -L / khác / thư viện / đường dẫn trong đối số thư viện phụ.

Bất chấp cái tên của nó, h2x cũng có thể được sử dụng để tạo một mô-đun Perl thuần túy cho khung xương. Xem
-X tùy chọn.

LỰA CHỌN


-A, --omit-tự động tải
Bỏ qua tất cả các phương tiện tự động tải. Điều này cũng giống như -c nhưng cũng loại bỏ
câu lệnh "use AutoLoader" từ tệp .pm.

-B, --bản thử nghiệm
Sử dụng số phiên bản kiểu alpha / beta. Làm cho số phiên bản là "0.00_01" trừ khi
-v được quy định.

-C, --omit-thay đổi
Bỏ qua việc tạo ra Những thay đổi và thêm phần LỊCH SỬ vào mẫu POD.

-F, --cpp-cờ=thêm cờ
Các cờ bổ sung để chỉ định cho bộ tiền xử lý C khi quét tiêu đề cho chức năng
các bản kê khai. Viết các tùy chọn này trong Makefile.PL quá.

-M, --func-mặt nạ=đều đặn biểu hiện
chọn các chức năng / macro để xử lý.

-O, - ghi đè-ok
Cho phép ghi đè thư mục tiện ích mở rộng có trước.

-P, --bỏ qua-pod
Bỏ qua phần POD gốc được tạo tự động.

-X, --bỏ qua-XS
Bỏ qua phần XS. Được sử dụng để tạo một mô-đun Perl thuần túy cho khung xương. "-c" và "-f" là
được kích hoạt ngầm.

-a, --gen-accessor
Tạo phương thức truy cập cho từng phần tử của cấu trúc và liên kết. Tạo ra
các phương thức được đặt tên theo tên phần tử; sẽ trả về giá trị hiện tại của
phần tử nếu được gọi mà không có đối số bổ sung; và sẽ đặt phần tử thành
giá trị được cung cấp (và trả về giá trị mới) nếu được gọi với một đối số bổ sung.
Các cấu trúc và liên hiệp được nhúng được trả về dưới dạng một con trỏ thay vì hoàn chỉnh
cấu trúc, để tạo điều kiện cho các cuộc gọi theo chuỗi.

Tất cả các phương pháp này đều áp dụng cho kiểu Ptr cho cấu trúc; Ngoài ra hai phương pháp
được xây dựng cho chính kiểu cấu trúc, "_to_ptr" trả về kiểu Ptr
trỏ đến cùng một cấu trúc và một phương thức "mới" để tạo và trả về một
cấu trúc, được khởi tạo thành số XNUMX.

-b, - phiên bản máy tính=phiên bản
Tạo tệp .pm tương thích ngược với phiên bản perl được chỉ định.

Đối với các phiên bản <5.6.0, các thay đổi là.
- không sử dụng 'của chúng tôi' (sử dụng 'sử dụng vars' thay thế)
- không có 'cảnh báo sử dụng'

Chỉ định phiên bản tương thích cao hơn phiên bản perl bạn đang sử dụng
chạy h2xs sẽ không có hiệu lực. Nếu h2xs không xác định sẽ mặc định tương thích với
phiên bản perl bạn đang sử dụng để chạy h2xs.

-c, --omit-hằng số
Bỏ qua "hằng ()" khỏi tệp .xs và "AUTOLOAD" chuyên biệt tương ứng khỏi
.pm tệp.

-d, - gỡ lỗi
Bật gỡ lỗi tin nhắn.

-e, --omit-enum=[đều đặn biểu hiện]
If đều đặn biểu hiện không được đưa ra, hãy bỏ qua tất cả các hằng số được xác định trong một C
sự liệt kê. Nếu không, chỉ bỏ qua những hằng số được xác định trong một enum có
tên phù hợp đều đặn biểu hiện.

từ đều đặn biểu hiện là tùy chọn, hãy đảm bảo rằng công tắc này được theo sau bởi
ít nhất một công tắc khác nếu bạn bỏ qua đều đặn biểu hiện và có một số đối số đang chờ xử lý
chẳng hạn như tên tệp tiêu đề. Điều này là ổn:

h2xs -e -n Mô-đun :: Foo foo.h

Điều này không ổn:

h2xs -n Mô-đun :: Foo -e foo.h

Ở phần sau, foo.h được coi là đều đặn biểu hiện.

-f, --lực lượng
Cho phép tạo tiện ích mở rộng cho tiêu đề ngay cả khi tiêu đề đó không được tìm thấy trong
tiêu chuẩn bao gồm các thư mục.

-g, --toàn cầu
Bao gồm mã để lưu trữ an toàn dữ liệu tĩnh trong tệp .xs. Các tiện ích mở rộng không
sử dụng dữ liệu tĩnh có thể bỏ qua tùy chọn này.

-h, -?, --Cứu giúp
In cách sử dụng, trợ giúp và phiên bản cho h2xs này và thoát.

-k, --omit-const-func
Đối với các đối số hàm được khai báo là "const", hãy bỏ qua thuộc tính const trong
Mã XS.

-m, --gen-tie-var
Thử nghiệm: đối với mỗi biến được khai báo trong (các) tệp tiêu đề, hãy khai báo một perl
biến cùng tên được gắn với biến C.

-n, --Tên=tên_mô-đun
Chỉ định một tên sẽ được sử dụng cho phần mở rộng, ví dụ: -n RPC :: DCE

-o, --opaque-tái=đều đặn biểu hiện
Sử dụng kiểu dữ liệu "không rõ ràng" cho các loại C được đối sánh bởi biểu thức chính quy, ngay cả khi
các loại này là "typedef" - tương đương với các loại từ typemaps. Không nên sử dụng
không có -x.

Điều này có thể hữu ích vì các loại "typedef" tương đương với số nguyên có thể
đại diện cho các tay cầm liên quan đến hệ điều hành và một người có thể muốn làm việc với các tay cầm này trong OO-way,
như trong "$ handle-> do_something ()". Sử dụng "-o." nếu bạn muốn xử lý tất cả
loại ed "typedef" là loại không trong suốt.

Kiểu đối sánh được quét vôi trắng (ngoại trừ dấu phẩy, không có khoảng trắng trước
chúng và nhiều "*" không có khoảng trắng giữa chúng).

-p, tiền tố --remove=tiếp đầu ngữ
Chỉ định một tiền tố cần được xóa khỏi tên hàm Perl, ví dụ:
-p sec_rgy_ Điều này thiết lập XS TIẾP ĐẦU NGỮ từ khóa và xóa tiền tố khỏi các hàm
được tự động tải qua cơ chế "hằng số ()".

-s, --const-sub=sub1, sub2
Tạo một chương trình con perl cho các macro được chỉ định thay vì tự động tải với
hằng số() chương trình con. Các macro này được giả định có kiểu trả về xe tăng *,
ví dụ: -s sec_rgy_wildcard_name, sec_rgy_wildcard_sid.

-t, - kiểu mặc định=kiểu
Chỉ định loại bên trong mà hằng số() cơ chế sử dụng cho macro. Mặc định
là IV (số nguyên có dấu). Hiện tất cả các macro được tìm thấy trong quá trình quét tiêu đề
quy trình sẽ được giả định có loại này. Các phiên bản tương lai của "h2xs" có thể đạt được
khả năng phỏng đoán được giáo dục.

- sử dụng-mới-thử nghiệm
Thời Gian - phiên bản máy tính (-b) hiện tại, các thử nghiệm đã tạo sẽ sử dụng "Thử nghiệm :: Thêm"
chứ không phải "Kiểm tra" là mặc định cho các phiên bản trước 5.6.2. "Thử nghiệm :: Thêm" sẽ
được thêm vào PREREQ_PM trong "Makefile.PL" đã tạo.

- sử dụng-cũ-kiểm tra
Sẽ buộc tạo mã kiểm tra sử dụng mô-đun "Kiểm tra" cũ hơn.

--skip-exportorter
Không sử dụng "Nhà xuất khẩu" và / hoặc xuất khẩu bất kỳ ký hiệu nào.

--skip-ppport
Không sử dụng "Devel :: PPPort": không có khả năng chuyển sang phiên bản cũ hơn.

--skip-autoloader
Không sử dụng mô-đun "AutoLoader"; nhưng giữ hằng số() chức năng và "phụ
AUTOLOAD "cho các hằng số.

--skip-nghiêm ngặt
Không sử dụng pragma "nghiêm ngặt".

--skip-cảnh báo
Không sử dụng "cảnh báo" pragma.

-v, --phiên bản=phiên bản
Chỉ định số phiên bản cho tiện ích mở rộng này. Số phiên bản này được thêm vào
các mẫu. Giá trị mặc định là 0.01 hoặc 0.00_01 nếu "-B" được chỉ định. Phiên bản
được chỉ định phải là số.

-x, --autogen-xsubs
Tự động tạo XSUB dựa trên khai báo hàm trong tệp tiêu đề. Các
gói "C :: Scan" nên được cài đặt. Nếu tùy chọn này được chỉ định, tên của
tệp tiêu đề có thể trông giống như "NAME1, NAME2". Trong trường hợp này, NAME1 được sử dụng thay vì
chuỗi được chỉ định, nhưng XSUB chỉ được phát ra cho các khai báo được bao gồm từ tệp
TÊN2.

Lưu ý rằng một số loại đối số / giá trị trả về cho các hàm có thể dẫn đến
XSUB-khai báo / sơ đồ đánh máy-mục nhập cần chỉnh sửa thủ công. Đó có thể là những đối tượng
không thể chuyển đổi từ / thành một con trỏ (như "long long"), con trỏ đến hàm hoặc
mảng. Xem thêm phần về "GIỚI HẠN của -x".

VÍ DỤ


# Hành vi mặc định, tiện ích mở rộng là Rusers
h2xs rpcsvc / rusers

# Tương tự, nhưng phần mở rộng là RUSERS
h2xs -n RUSERS rpcsvc / rusers

# Phần mở rộng là rpcsvc :: rusers. Vẫn tìm thấy
h2xs rpcsvc :: rusers

# Phần mở rộng là ONC :: RPC. Vẫn tìm thấy
h2xs -n ONC :: RPC rpcsvc / rusers

# Không có hằng số () hoặc AUTOLOAD
h2xs -c rpcsvc / rusers

# Tạo mẫu cho tiện ích mở rộng có tên RPC
h2xs -cfn RPC

# Phần mở rộng là ONC :: RPC.
h2xs -cfn ONC :: RPC

# Phần mở rộng là một mô-đun Perl thuần túy không có mã XS.
h2xs -X My :: Mô-đun

# Phần mở rộng là Lib :: Foo hoạt động ít nhất với Perl5.005_03.
# Hằng số được tạo cho tất cả các #defines và enums h2xs có thể tìm thấy
# trong foo.h.
h2xs -b 5.5.3 -n Lib :: Foo foo.h

# Phần mở rộng là Lib :: Foo hoạt động ít nhất với Perl5.005_03.
# Hằng số được tạo cho tất cả các #defines nhưng chỉ dành cho enums
# có tên không bắt đầu bằng 'bar_'.
h2xs -b 5.5.3 -e '^ bar_' -n Lib :: Foo foo.h

# Makefile.PL sẽ tìm kiếm thư viện -lrpc trong
# thư mục bổ sung / opt / net / lib
h2xs rpcsvc / rusers -L / opt / net / lib -lrpc

# Phần mở rộng là DCE :: rgynbase
# tiền tố "sec_rgy_" bị xóa khỏi tên hàm perl
h2xs -n DCE :: rgynbase -p sec_rgy_ dce / rgynbase

# Phần mở rộng là DCE :: rgynbase
# tiền tố "sec_rgy_" bị xóa khỏi tên hàm perl
# chương trình con được tạo cho sec_rgy_wildcard_name và
# giây_rgy_wildcard_sid
h2xs -n DCE :: rgynbase -p sec_rgy_ \
-s sec_rgy_wildcard_name, sec_rgy_wildcard_sid dce / rgynbase

# Tạo XS mà không cần định nghĩa trong perl.h, nhưng với khai báo hàm
# hiển thị từ perl.h. Tên của phần mở rộng là perl1.
# Khi quét perl.h, xác định -DEXT = extern -DdEXT = -DINIT (x) =
# Thêm dấu gạch chéo ngược bên dưới vì chuỗi được chuyển sang shell.
# Lưu ý rằng một thư mục có tệp tiêu đề perl sẽ
# được thêm tự động để bao gồm đường dẫn.
h2xs -xAn perl1 -F "-DEXT = extern -DdEXT = -DINIT \ (x \) =" perl.h

# Tương tự với khai báo hàm trong proto.h như hiển thị từ perl.h.
h2xs -xAn perl2 perl.h, proto.h

# Tương tự nhưng chỉ chọn các chức năng phù hợp với / ^ av_ /
h2xs -M '^ av_' -xAn perl2 perl.h, proto.h

# Tương tự nhưng coi SV * vv là loại "không trong suốt"
h2xs -o '^ [S] V \ * $' -M '^ av_' -xAn perl2 perl.h, proto.h

Extension dựa on .h .c các tập tin
Giả sử rằng bạn có một số tệp C triển khai một số chức năng và
các tệp tiêu đề. Cách tạo tiện ích mở rộng giúp chức năng này có thể truy cập được trong
Perl? Ví dụ dưới đây giả định rằng các tệp tiêu đề là giao diện_simple.h
giao diện_hairy.hvà bạn muốn mô-đun perl được đặt tên là "Ext :: Ension". Nếu bạn cần
một số chỉ thị tiền xử lý và / hoặc liên kết với các thư viện bên ngoài, hãy xem các cờ "-F",
"-L" và "-l" trong "OPTIONS".

Tìm tên thư mục
Bắt đầu với một chạy giả của h2xs:

h2xs -Afn Ext :: Ension

Mục đích duy nhất của bước này là tạo các thư mục cần thiết và cho bạn biết
tên của các thư mục này. Từ đầu ra, bạn có thể thấy rằng thư mục dành cho
phần mở rộng là Sự mở rộng.

Sao chép tệp C
Sao chép tệp tiêu đề và tệp C của bạn vào thư mục này Sự mở rộng.

Tạo tiện ích mở rộng
Chạy h2xs, ghi đè lên các tệp được tạo tự động cũ hơn:

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

h2xs tìm kiếm các tệp tiêu đề sau khi thay đổi thành thư mục mở rộng, vì vậy nó sẽ tìm thấy
tệp tiêu đề của bạn OK.

Lưu trữ và kiểm tra
Như thường lệ, chạy

cd Ext / Ension
Perl Makefile.PL
làm cho dist
làm cho
làm bài kiểm tra

Gợi ý
Điều quan trọng là làm "làm cho dist" càng sớm càng tốt. Bằng cách này bạn có thể dễ dàng
hợp nhất(1) các thay đổi của bạn đối với các tệp được tạo tự động nếu bạn quyết định chỉnh sửa các tệp ".h" của mình và
chạy lại h2xs.

Đừng quên chỉnh sửa tài liệu trong tài liệu đã tạo .PM tập tin.

Hãy coi các tệp được tạo tự động chỉ là bộ xương, bạn có thể phát minh ra các giao diện tốt hơn
hơn những gì h2xs có thể đoán.

Chỉ coi phần này như một hướng dẫn, một số tùy chọn khác của h2xs có thể phù hợp hơn
bạn cần.

MÔI TRƯỜNG


Không có biến môi trường nào được sử dụng.

Sử dụng h2xs trực tuyến bằng các dịch vụ onworks.net


Máy chủ & Máy trạm miễn phí

Tải xuống ứng dụng Windows & Linux

Lệnh Linux

Ad