англійськафранцузькаіспанська

Ad


Значок 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 [ВАРІАНТИ ...] [заголовок файлу ... [додаткові_бібліотеки]]

h2xs -h|-?|--допомога

ОПИС


h2xs створює розширення Perl із заголовних файлів C. Розширення включатиме функції
який можна використовувати для отримання значення будь-якого оператора #define, який був у заголовку C
файли.

Команда назва_модуля буде використовуватися для назви розширення. Якщо назва_модуля ні
тоді буде використано ім’я першого заголовного файлу з першим символом
з великої літери.

Якщо для розширення можуть знадобитися додаткові бібліотеки, їх слід включити сюди. Розширення
Makefile.PL подбає про те, чи дійсно бібліотеки існують і як вони
слід завантажити. Додаткові бібліотеки слід вказати у формі -lm -lposix тощо,
так само, як і в командному рядку cc. За замовчуванням Makefile.PL шукатиме файл
шлях до бібліотеки, визначений Configure. Цей шлях можна розширити, включивши аргументи
форми -L/інший/бібліотека/шлях у аргументі про позабібліотеки.

Незважаючи на свою назву, h2xs також може використовуватися для створення скелета чистого модуля Perl. Див
-X варіант.

ВАРІАНТИ


-A, --omit-autoload
Виключіть усі засоби автоматичного завантаження. Це те саме, що -c але також видаляє
Оператор "use AutoLoader" із файлу .pm.

-B, --бета-версія
Використовуйте номер версії стилю альфа/бета. Викликає номер версії "0.00_01", якщо
-v вказано.

-C, --omit-changes
Пропускає створення Зміни файл і додає розділ HISTORY до шаблону POD.

-F, --cpp-прапори=addflags
Додаткові прапори, які потрібно вказати препроцесору C під час сканування заголовка на наявність функції
декларації. Записує ці параметри в згенерований Makefile.PL теж.

-M, --func-mask=регулярний вираз
вибирає функції/макроси для обробки.

-O, --перезаписати-ок
Дозволяє перезаписувати вже існуючий каталог розширень.

-P, --omit-pod
Пропустіть автоматично згенерований розділ POD.

-X, --опустити-XS
Пропустіть частину XS. Використовується для створення скелета чистого модуля Perl. "-c" і "-f" є
неявно ввімкнено.

-a, --gen-accessors
Згенеруйте метод доступу для кожного елемента структур і об’єднань. Згенерований
методи названі за назвою елемента; поверне поточне значення
елемент, якщо викликається без додаткових аргументів; і встановить елемент у
надане значення (і повернути нове значення), якщо викликається з додатковим аргументом.
Вбудовані структури та об’єднання повертаються як вказівник, а не як завершення
структуру, щоб полегшити ланцюжкові виклики.

Усі ці методи застосовуються до типу Ptr для структури; додатково два методи
створюються для самого типу структури "_to_ptr", який повертає тип Ptr
вказуючи на ту саму структуру, і «новий» метод для створення та повернення нового
структуру, ініціалізовану нулями.

-b, --compat-версія=версія
Генерує файл .pm, зворотно сумісний із зазначеною версією perl.

Для версій < 5.6.0 зміни є.
- не використовується "наш" (замість цього використовується "використовуйте варі")
- немає "попереджень щодо використання"

Визначення версії сумісності, вищої за версію perl, яку ви використовуєте
запуск h2xs не матиме ніякого ефекту. Якщо не вказано, h2xs за замовчуванням буде сумісним з
версія perl, яку ви використовуєте для запуску h2xs.

-c, --omit-константа
Опустіть "constant()" з файлу .xs і відповідне спеціалізоване "АВТОЗАвантаження" з
файл .pm.

-d, --налагодження
Увімкніть повідомлення про налагодження.

-e, --omit-enums=[регулярний вираз]
If регулярний вираз не дається, пропустіть усі константи, які визначені в C
перерахування. В іншому випадку пропустіть лише ті константи, які визначені в переліку якого
збігаються імена регулярний вираз.

З регулярний вираз є необов’язковим, переконайтеся, що за цим перемикачем слідує 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, --ім'я=назва_модуля
Вказує ім'я, яке буде використовуватися для розширення, наприклад, -n RPC::DCE

-o, --непрозорий-re=регулярний вираз
Використовуйте "непрозорий" тип даних для типів C, які відповідають регулярному виразу, навіть якщо
ці типи "typedef" - еквівалентні типам із карт типів. Не слід використовувати
без -x.

Це може бути корисно, оскільки, скажімо, типи, які є "typedef"-еквівалентними цілим числам, можуть
представляють дескриптори, пов'язані з операційною системою, і, можливо, захочеться працювати з цими дескрипторами в OO- спосіб,
як у "$handle->do_something()". Використовуйте «-o ». якщо ви хочете впоратися з усіма
"typedef" типи як непрозорі типи.

Відповідність типу побілюється (за винятком ком, які раніше не мають пробілів
їх і кілька «*», між якими немає пробілів).

-p, --remove-prefix=префікс
Вкажіть префікс, який слід видалити з імен функцій Perl, наприклад,
-p sec_rgy_ Це встановлює XS ПРЕФІКС ключове слово та видаляє префікс із функцій
які автоматично завантажуються через механізм "constant()".

-s, --const-subs=під1, під2
Створіть підпрограму perl для зазначених макросів, а не автозавантаження за допомогою
константа() підпрограма. Передбачається, що ці макроси мають тип повернення бак *,
наприклад, -s sec_rgy_wildcard_name,sec_rgy_wildcard_sid.

-t, --тип за замовчуванням=тип
Вкажіть внутрішній тип константа() механізм, який використовується для макросів. За замовчуванням
є IV (ціле число зі знаком). Наразі всі макроси знайдені під час сканування заголовка
буде вважатися, що процес має цей тип. Майбутні версії "h2xs" можуть отримати
вміння робити обґрунтовані припущення.

--використання-нових-тестів
Коли --compat-версія (-b) наявний, створені тести використовуватимуть "Test::More"
а не "Test", який є за замовчуванням для версій до 5.6.2. "Test::More" буде
бути доданим до PREREQ_PM у згенерованому файлі "Makefile.PL".

--використання старих тестів
Примусово генерувати тестовий код, який використовує старий модуль "Test".

--пропуск-експортер
Не використовуйте "Експортер" та/або експортуйте будь-який символ.

--skip-ppport
Не використовуйте "Devel::PPPort": немає переносу на старішу версію.

--skip-autoloader
Не використовуйте модуль «Автозавантажувач»; але зберігати константа() функція та «під
AUTOLOAD" для констант.

--пропуск-строгий
Не використовуйте прагму «суворий».

--попередження про пропуск
Не використовуйте прагма «попередження».

-v, -- версія=версія
Вкажіть номер версії для цього розширення. Цей номер версії додається до
шаблони. За замовчуванням встановлено значення 0.01 або 0.00_01, якщо вказано "-B". Версія
вказано числові.

-x, --autogen-xsubs
Автоматично генерувати XSUB на основі декларацій функцій у файлі заголовка. The
повинен бути встановлений пакет "C::Scan". Якщо вказано цей параметр, ім’я
заголовний файл може виглядати як "NAME1,NAME2". У цьому випадку використовується NAME1 замість
зазначений рядок, але XSUB випускаються лише для декларацій, включених із файлу
ІМ'Я2.

Зауважте, що деякі типи аргументів/повернених значень для функцій можуть призвести до
XSUB-декларації/записи typemap, які потребують ручного редагування. Такими можуть бути об'єкти, які
не можна перетворити з/в покажчик (наприклад, "long long"), вказівники на функції або
масиви. Дивіться також розділ «ОБМЕЖЕННЯ». -x".

ПРИКЛАДИ


# Поведінка за замовчуванням, розширення - Rusers
h2xs rpcsvc/rusers

# Те саме, але розширення RUSERS
h2xs -n КОРИСТЕРИ 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

# Розширення - це чистий модуль Perl без коду XS.
h2xs -X My::Module

# Розширення - Lib::Foo, яке працює принаймні з Perl5.005_03.
# Константи створюються для всіх #defines і перерахувань, які може знайти h2xs
# у foo.h.
h2xs -b 5.5.3 -n Lib::Foo foo.h

# Розширення - Lib::Foo, яке працює принаймні з Perl5.005_03.
# Константи створюються для всіх #defines, але лише для перерахувань
# чиї назви не починаються з "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 dce/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, що реалізують певну функціональність, і відповідні
заголовні файли. Як створити розширення, яке робить цю функцію доступною в
Perl? Наведений нижче приклад передбачає, що файли заголовків є interface_simple.h та
interface_hairy.h, і ви хочете, щоб модуль perl мав назву "Ext::Ension". Якщо вам потрібно
деякі директиви препроцесора та/або зв'язки із зовнішніми бібліотеками, див. прапорці "-F",
"-L" і "-l" у "ПАРАЦІЯХ".

Знайдіть назву каталогу
Почніть з фіктивного запуску h2xs:

h2xs -Afn Ext::Ension

Єдина мета цього кроку — створити потрібні каталоги та повідомити вас про це
назви цих каталогів. З результатів ви можете побачити, що каталог for
розширення є Ext/Ension.

Скопіюйте файли C
Скопіюйте свої заголовні файли та файли C у цей каталог Ext/Ension.

Створіть розширення
Запустіть h2xs, перезаписуючи старі автоматично згенеровані файли:

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

h2xs шукає заголовні файли після перейшовши до каталогу розширення, щоб він знайшов
ваші заголовні файли в порядку.

Архів і тест
Як завжди, біжи

CD Ext/Ension
perl Makefile.PL
зробити dist
зробити
зробити тест

Поради
Важливо якомога раніше «зробити розрив». Таким чином можна легко
злиття(1) ваші зміни до автоматично згенерованих файлів, якщо ви вирішите відредагувати свої файли ".h" і
повторити h2xs.

Не забудьте відредагувати документацію в сформованому .pm файлу.

Розглядайте автоматично створені файли лише як скелети, ви можете винайти кращі інтерфейси
ніж те, що h2xs міг здогадатися.

Розглядайте цей розділ лише як рекомендацію, деякі інші варіанти h2xs можуть краще підійти
ваші потреби.

НАВКОЛИШНЄ СЕРЕДОВИЩЕ


Змінні середовища не використовуються.

Використовуйте h2xs онлайн за допомогою служб onworks.net


Безкоштовні сервери та робочі станції

Завантажте програми для Windows і Linux

Команди Linux

Ad