انگلیسیفرانسویاسپانیایی

Ad


فاویکون OnWorks

h2xs - آنلاین در ابر

h2xs را در ارائه دهنده هاست رایگان OnWorks از طریق Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا کنید.

این دستور h2xs است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.

برنامه:

نام


h2xs - فایل های هدر .h C را به پسوندهای Perl تبدیل کنید

خلاصه


h2xs [OPTIONS ...] [سرفصل ... [کتابخانه_های اضافی]]

h2xs -h|-?|--کمک

شرح


h2xs پسوند پرل را از فایل های هدر C می سازد. افزونه شامل توابع خواهد بود
که می تواند برای بازیابی مقدار هر دستور #define که در هدر C بود استفاده شود
فایل های.

La module_name برای نام پسوند استفاده خواهد شد. اگر module_name نیست
ارائه می شود سپس از نام اولین فایل هدر با اولین کاراکتر استفاده می شود
بزرگ شده

اگر برنامه افزودنی ممکن است به کتابخانه های اضافی نیاز داشته باشد، آنها باید در اینجا گنجانده شوند. پسوند
Makefile.PL بررسی می‌کند که آیا کتابخانه‌ها واقعاً وجود دارند و چگونه هستند
باید بارگذاری شود کتابخانه های اضافی باید به شکل -lm -lposix و غیره مشخص شوند.
درست مانند خط فرمان cc. به طور پیش‌فرض، Makefile.PL از طریق آن جستجو می‌کند
مسیر کتابخانه تعیین شده توسط Configure. آن مسیر را می توان با گنجاندن آرگومان ها افزایش داد
از فرم -L/دیگر/کتابخانه/مسیر در استدلال برون کتابخانه ها.

با وجود نامش، h2xs همچنین ممکن است برای ایجاد یک ماژول پرل خالص اسکلت استفاده شود. را ببینید
-X گزینه.

OPTIONS


-A, - حذف خودکار
تمام امکانات بارگذاری خودکار را حذف کنید. این همان است -c بلکه حذف می کند
عبارت "use AutoLoader" از فایل pm.

-B, --نسخه بتا
از شماره نسخه آلفا/بتا استفاده کنید. باعث می شود شماره نسخه "0.00_01" باشد مگر اینکه
-v مشخص شده است.

-C, -- حذف-تغییر می دهد
ایجاد را حذف می کند تبادل فایل، و یک بخش HISTORY به الگوی POD اضافه می کند.

-F, --cpp-flags=اضافه کردن پرچم ها
پرچم های اضافی برای مشخص کردن پیش پردازنده C هنگام اسکن هدر برای عملکرد
اعلامیه ها این گزینه ها را در تولید شده می نویسد Makefile.PL بیش از حد.

-M, ---ماسک=منظم بیان
توابع/ماکروها را برای پردازش انتخاب می کند.

-O, بازنویسی-ok
اجازه می دهد تا یک فهرست برنامه افزودنی از قبل موجود بازنویسی شود.

-P, -- omit-pod
بخش POD خرد خود تولید شده را حذف کنید.

-X, ---Omit-XS
بخش XS را حذف کنید. برای تولید یک ماژول پرل خالص اسکلت استفاده می شود. "-c" و "-f" هستند
به طور ضمنی فعال شده است.

-a, -- gen-accessors
برای هر عنصر ساختارها و اتحادیه ها یک متد دسترسی ایجاد کنید. تولید شده
متدها پس از نام عنصر نامگذاری می شوند. مقدار فعلی را برمی گرداند
عنصر اگر بدون آرگومان اضافی فراخوانی شود. و عنصر را روی مقدار تنظیم می کند
مقدار عرضه شده (و مقدار جدید را برمی گرداند) اگر با یک آرگومان اضافی فراخوانی شود.
ساختارها و اتحادهای تعبیه شده به عنوان یک اشاره گر به جای کامل بازگردانده می شوند
ساختار، برای تسهیل تماس های زنجیره ای.

این روش ها همگی برای نوع Ptr برای ساختار اعمال می شوند. علاوه بر این دو روش
برای خود نوع ساختار، "_to_ptr" ساخته می شوند که یک نوع Ptr را برمی گرداند
اشاره به همان ساختار، و یک روش "جدید" برای ساختن و برگرداندن یک جدید
ساختار، مقدار دهی اولیه شده به صفر.

-b, --compat-نسخه=نسخه
یک فایل .pm ایجاد می کند که با نسخه مشخص شده perl سازگار است.

برای نسخه های < 5.6.0، تغییرات هستند.
- عدم استفاده از "ما" (به جای آن از "استفاده از vars" استفاده می کند)
- بدون "هشدار استفاده"

تعیین نسخه سازگاری بالاتر از نسخه پرل که برای آن استفاده می کنید
اجرای h2xs هیچ تاثیری نخواهد داشت. اگر نامشخص h2xs به طور پیش فرض به سازگاری با
نسخه پرل که برای اجرای h2xs استفاده می کنید.

-c, - حذف - ثابت
"constant()" را از فایل .xs و "AUTOLOAD" تخصصی مربوطه را از فایل حذف کنید.
فایل pm.

-d, --اشکال زدایی
اشکال زدایی پیام ها را روشن کنید.

-e, -- omit-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, ---omit-const-func
برای آرگومان‌های تابعی که به‌عنوان «const» اعلام شده‌اند، ویژگی const را در ایجاد شده حذف کنید
کد XS

-m, --gen-tied-var
تجربی: برای هر متغیری که در فایل(های هدر) اعلام شده است، یک perl تعریف کنید
متغیری به همین نام به طور جادویی به متغیر C گره خورده است.

-n, --نام=module_name
نامی را برای استفاده برای پسوند مشخص می کند، به عنوان مثال -n RPC::DCE

-o, مات-re=منظم بیان
از نوع داده "مات" برای انواع C که با عبارت منظم مطابقت دارند، حتی اگر استفاده کنید
این انواع "typedef" - معادل انواع از typemaps هستند. نباید استفاده شود
بدون -x.

این ممکن است مفید باشد زیرا، مثلاً، انواعی که "typedef" - معادل اعداد صحیح هستند ممکن است
نشان دهنده دسته های مربوط به سیستم عامل است، و ممکن است کسی بخواهد با این دسته ها به روش OO کار کند،
مانند "$handle->do_something()". از "-o" استفاده کنید. اگر می خواهید به همه چیز رسیدگی کنید
انواع "typedef" به عنوان انواع مات.

نوع به تطبیق سفید شده است (به جز کاماها که قبلاً هیچ فاصله سفیدی ندارند
آنها و چندین "*" که هیچ فضای خالی بین آنها وجود ندارد).

-p, ---remove-prefix=پیشوند
پیشوندی را مشخص کنید که باید از نام تابع Perl حذف شود، به عنوان مثال،
-p sec_rgy_ این XS را راه اندازی می کند پیشوند کلمه کلیدی و پیشوند را از توابع حذف می کند
که به صورت خودکار از طریق مکانیسم "constant()" بارگذاری می شوند.

-s, --const-subs=sub1,sub2
یک زیربرنامه پرل برای ماکروهای مشخص شده به جای بارگذاری خودکار با آن ایجاد کنید
مقدار ثابت() زیر برنامه فرض بر این است که این ماکروها دارای نوع بازگشتی هستند ارابه *,
به عنوان مثال، -s sec_rgy_wildcard_name,sec_rgy_wildcard_sid.

-t, - نوع پیش فرض=نوع
نوع داخلی آن را مشخص کنید مقدار ثابت() استفاده از مکانیزم برای ماکروها پیشفرض
IV (عدد صحیح امضا شده) است. در حال حاضر همه ماکروها در حین اسکن سرصفحه پیدا شده اند
فرض می شود که فرآیند دارای این نوع باشد. نسخه‌های آینده "h2xs" ممکن است این امتیاز را به دست آورند
توانایی حدس زدن تحصیلی

--استفاده از تست های جدید
چه زمانی --compat-نسخه (-b) در حال حاضر تست های تولید شده از "Test::More" استفاده خواهند کرد.
به جای "Test" که پیش فرض نسخه های قبل از 5.6.2 است. "تست::بیشتر" خواهد شد
به PREREQ_PM در "Makefile.PL" ایجاد شده اضافه شود.

--استفاده از تست های قدیمی
تولید کد آزمایشی را که از ماژول قدیمی "Test" استفاده می کند، مجبور می کند.

----صادر کننده
از "صادر کننده" و/یا صادرات هیچ نمادی استفاده نکنید.

--skip-ppport
از "Devel::PPPport" استفاده نکنید: قابلیت حمل به نسخه قدیمی وجود ندارد.

--skip-autoloader
از ماژول "AutoLoader" استفاده نکنید. اما نگه دارید مقدار ثابت() تابع و "زیر
AUTOLOAD" برای ثابت ها.

--Skip-Strict
از پراگما "سخت" استفاده نکنید.

-- هشدارهای پرش
از "هشدارهای" پراگما استفاده نکنید.

-v, - نسخه=نسخه
یک شماره نسخه برای این افزونه مشخص کنید. این شماره نسخه به
قالب ها پیش فرض 0.01 یا 0.00_01 اگر "-B" مشخص شده است. نسخه
مشخص شده باید عددی باشد.

-x, --autogen-xsubs
به طور خودکار XSUB ها را بر اساس اعلان عملکرد در فایل هدر ایجاد کنید. در
بسته "C::Scan" باید نصب شود. اگر این گزینه مشخص شده باشد، نام
فایل سرصفحه ممکن است شبیه "NAME1,NAME2" باشد. در این مورد NAME1 به جای استفاده می شود
رشته مشخص شده است، اما XSUB ها فقط برای اعلان های موجود در فایل منتشر می شوند
NAME2.

توجه داشته باشید که برخی از انواع آرگومان ها/مقدارهای بازگشتی برای توابع ممکن است منجر به
XSUB-اعلامیه/نقشه-نوشته هایی که نیاز به ویرایش دستی دارند. چنین ممکن است اشیایی باشند که
نمی توان از/به اشاره گر (مانند "طولان طولانی")، اشاره گرها به توابع یا
آرایه ها همچنین به بخش "محدودیت های -x".

مثال ها


# رفتار پیش فرض، پسوند Rusers است
h2xs rpcsvc/rusers

# یکسان است، اما پسوند RUSERS است
h2xs -n RUSERS rpcsvc/rusers

# پسوند rpcsvc::rusers است. هنوز پیدا می کند
h2xs rpcsvc::rusers

# پسوند ONC::RPC است. هنوز پیدا می کند
h2xs -n ONC::RPC rpcsvc/rusers

# بدون ثابت() یا AUTOLOAD
h2xs -c rpcsvc/rusers

# قالب هایی را برای پسوندی به نام RPC ایجاد می کند
h2xs -cfn RPC

# پسوند ONC::RPC است.
h2xs -cfn ONC::RPC

# پسوند یک ماژول پرل خالص بدون کد XS است.
h2xs -X My::Module

# پسوند Lib::Foo است که حداقل با Perl5.005_03 کار می کند.
# ثابت ها برای همه #defines و enum هایی که h2xs می توانند پیدا کنند ایجاد می شوند
# در foo.h.
h2xs -b 5.5.3 -n Lib:: Foo foo.h

# پسوند Lib::Foo است که حداقل با Perl5.005_03 کار می کند.
# ثابت ها برای همه #تعریف ها اما فقط برای enum ها ایجاد می شوند
# که نام آنها با 'bar_' شروع نمی شود.
h2xs -b 5.5.3 -e '^bar_' -n Lib::Foo foo.h

# Makefile.PL به دنبال library -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 dce/rgynbase

# XS را بدون تعریف در perl.h، اما با اعلان تابع بسازید
# قابل مشاهده از perl.h. نام پسوند perl1 است.
# هنگام اسکن perl.h، -DEXT=extern -DdEXT= -DINIT(x)= را تعریف کنید.
# بک اسلش اضافی در زیر به دلیل اینکه رشته به پوسته منتقل می شود.
# توجه داشته باشید که دایرکتوری با فایل های هدر پرل
# به طور خودکار اضافه شود تا مسیر را در بر بگیرد.
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" در "OPTIONS".

نام دایرکتوری را پیدا کنید
با اجرای ساختگی h2xs شروع کنید:

h2xs -Afn Ext::Ension

تنها هدف از این مرحله ایجاد دایرکتوری های مورد نیاز است و به شما اطلاع می دهد
نام این دایرکتوری ها از خروجی می توانید ببینید که دایرکتوری برای
پسوند است افزونه.

فایل های C را کپی کنید
فایل های هدر و فایل های C خود را در این دایرکتوری کپی کنید افزونه.

پسوند را ایجاد کنید
h2xs را اجرا کنید، فایل‌های قدیمی‌تر تولید شده را بازنویسی کنید:

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

h2xs به دنبال فایل های هدر می گردد بعد از تغییر به دایرکتوری افزونه، بنابراین آن را پیدا خواهد کرد
فایل های هدر شما درست است

آرشیو و تست
طبق معمول بدوید

سی دی Ext/Ension
پرل Makefile.PL
فاصله انداختن
ساخت
تست کنید

نکات
مهم این است که هر چه زودتر "دیست" را انجام دهید. به این ترتیب شما به راحتی می توانید
ادغام کردن(1) اگر تصمیم به ویرایش فایل‌های ".h" خود داشته باشید، تغییرات خود را در فایل‌های تولید شده خودکار انجام دهید
h2xs را مجدد اجرا کنید.

فراموش نکنید که اسناد ایجاد شده را ویرایش کنید .pm فایل.

فایل های تولید شده خود را فقط به عنوان اسکلت در نظر بگیرید، ممکن است رابط های بهتری اختراع کنید
از چیزی که h2xs می توانست حدس بزند.

این بخش را فقط به عنوان یک راهنما در نظر بگیرید، برخی از گزینه های دیگر h2xs ممکن است مناسب تر باشند
نیازهای شما.

محیط زیست


هیچ متغیر محیطی استفاده نمی شود.

با استفاده از خدمات onworks.net از h2xs به صورت آنلاین استفاده کنید


سرورها و ایستگاه های کاری رایگان

دانلود برنامه های ویندوز و لینوکس

دستورات لینوکس

Ad