АнглийскийФранцузскийИспанский

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, --опустить-автозагрузка
Опустите все средства автозагрузки. Это то же самое, что и -c но также удаляет
Оператор "использовать автозагрузчик" из файла .pm.

-B, --бета-версия
Используйте номер версии в стиле альфа / бета. Приводит к тому, что номер версии будет "0.00_01", если только
-v указан.

-C, --опустить-изменения
Опускает создание изменения файл и добавляет раздел HISTORY в шаблон POD.

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

-M, --func-маска=регулярный выражение
выбирает функции / макросы для обработки.

-O, --overwrite-ок
Позволяет перезаписать существующий каталог расширений.

-P, --опустить-стручок
Опустите автоматически сгенерированный тупиковый раздел POD.

-X, --опустить-XS
Опустите часть XS. Используется для создания скелета чистого модуля Perl. "-c" и "-f" являются
неявно включен.

-a, --gen-аксессуары
Создайте метод доступа для каждого элемента структур и объединений. Сгенерированный
методы названы по имени элемента; вернет текущее значение
элемент, если вызывается без дополнительных аргументов; и установит элемент в
предоставленное значение (и возврат нового значения), если вызывается с дополнительным аргументом.
Встроенные структуры и объединения возвращаются в виде указателя, а не полного
структура для облегчения связанных вызовов.

Все эти методы применимы к типу Ptr для структуры; дополнительно два метода
созданы для самого типа структуры, "_to_ptr", который возвращает тип Ptr
указывающий на ту же структуру, и «новый» метод для создания и возврата нового
структура, инициализированная нулями.

-b, --compat-версия=версия
Создает файл .pm, обратно совместимый с указанной версией Perl.

Для версий <5.6.0 изменения есть.
- не использовать "наш" (вместо этого используется "использовать вары")
- никаких предупреждений об использовании

Указание версии совместимости выше, чем версия perl, которую вы используете для
запуск h2xs не даст никакого эффекта. Если не указано иное, h2xs по умолчанию будет совместим с
версия perl, которую вы используете для запуска h2xs.

-c, --опустить-константа
Опустите «constant ()» из файла .xs и соответствующий специализированный «AUTOLOAD» из
.pm файл.

-d, --отладка
Включите отладочные сообщения.

-e, --опустить-перечисления=[регулярный выражение]
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-связал-вар
Экспериментальный: для каждой переменной, объявленной в файле (ах) заголовка, объявить perl
одноименная переменная волшебным образом связана с переменной C.

-n, --имя=имя_модуля
Задает имя, которое будет использоваться для расширения, например, -n RPC :: DCE

-o, --opaque-re=регулярный выражение
Используйте «непрозрачный» тип данных для типов C, соответствующих регулярному выражению, даже если
эти типы "typedef" -эквивалентны типам из таблиц типов. Не следует использовать
без -x.

Это может быть полезно, поскольку, скажем, типы, которые "typedef" -эквивалентны целым числам, могут
представляют собой дескрипторы, относящиеся к ОС, и можно захотеть работать с этими дескрипторами в объектно-ориентированном стиле,
как в "$ handle-> do_something ()". Используйте "-o". если вы хотите справиться со всеми
"typedef" редактирует типы как непрозрачные типы.

Соответствующий тип окрашен в белый цвет (за исключением запятых, перед которыми нет пробелов.
их и несколько "*" без пробелов между ними).

-p, --удалить-префикс=префикс
Укажите префикс, который следует удалить из имен функций Perl, например,
-p sec_gery_ Устанавливает XS ПРЕФИКС ключевое слово и удаляет префикс из функций
которые загружаются автоматически с помощью механизма «constant ()».

-s, --конст-сабы=sub1, sub2
Создайте подпрограмму Perl для указанных макросов вместо автозагрузки с
постоянный() подпрограмма. Предполагается, что эти макросы имеют возвращаемый тип колесница *,
например, -s sec_gery_wildcard_name, sec_gery_wildcard_sid.

-t, - тип по умолчанию=напишите
Укажите внутренний тип, который постоянный() механизм использует для макросов. По умолчанию
это IV (целое число со знаком). На данный момент все макросы, обнаруженные при сканировании заголовка
Предполагается, что процесс имеет этот тип. Будущие версии "h2xs" могут получить
способность делать обоснованные предположения.

--use-новые-тесты
После появления --compat-версия (-b) присутствует, сгенерированные тесты будут использовать "Test :: More"
а не «Тест», который используется по умолчанию для версий до 5.6.2. "Test :: More" будет
быть добавленным в PREREQ_PM в созданном "Makefile.PL".

--use-старые-тесты
Заставит генерировать тестовый код, который использует старый модуль «Test».

--скип-экспортер
Не используйте «Экспортер» и / или не экспортируйте какие-либо символы.

- пропустить-ppport
Не используйте "Devel :: PPPort": нет возможности переноса на старую версию.

--скип-автозагрузчик
Не используйте модуль «Автозагрузчик»; но держи постоянный() функция и "подпрограмма"
АВТОЗАГРУЗКА "для констант.

- пропустить-строгий
Не используйте прагму "строгий".

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

-v, --версия=версия
Укажите номер версии для этого расширения. Этот номер версии добавлен в
шаблоны. Значение по умолчанию - 0.01 или 0.00_01, если указано «-B». Версия
указанное должно быть числовым.

-x, --autogen-xsubs
Автоматически создавать XSUB на основе объявлений функций в файле заголовка. В
пакет "C :: Scan" должен быть установлен. Если указана эта опция, имя
заголовочный файл может выглядеть как «ИМЯ1, ИМЯ2». В этом случае NAME1 используется вместо
указанная строка, но XSUB генерируются только для объявлений, включенных из файла
ИМЯ2.

Обратите внимание, что некоторые типы аргументов / возвращаемых значений для функций могут приводить к
Объявления XSUB / записи карты типов, требующие редактирования вручную. Такими могут быть предметы, которые
не могут быть преобразованы из / в указатель (например, "long long"), указатели на функции или
массивы. См. Также раздел «ОГРАНИЧЕНИЯ -x".

ПРИМЕРЫ


# Поведение по умолчанию, расширение - Rusers
h2xs rpcsvc / rusers

# То же самое, но расширение - RUSERS
h2xs -n RUSERS rpcsvc / rusers

# Расширение - rpcsvc :: rusers. Все еще находит
h2xs rpcsvc :: rusers

# Расширение - ONC :: RPC. Все еще находит
h2xs -n ONC :: RPC rpcsvc / rusers

# Без константы () или АВТОЗАГРУЗКИ
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.
# Константы создаются для всех # определений и перечислений, которые могут найти h2xs
# в foo.h.
h2xs -b 5.5.3 -n Lib :: Foo foo.h

# Расширением является Lib :: Foo, которое работает как минимум с Perl5.005_03.
# Константы создаются для всех # определений, но только для перечислений
# чьи имена не начинаются с '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_gery_" удаляется из имен функций perl
h2xs -n DCE :: rgynbase -p sec_gery_ dce / rgynbase

# Расширение - DCE :: rgynbase
# префикс "sec_gery_" удаляется из имен функций perl
# подпрограммы созданы для sec_gery_wildcard_name и
# sec_gery_wildcard_sid
h2xs -n DCE :: rgynbase -p сек_рги_ \
-s sec_gery_wildcard_name, sec_gery_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? В приведенном ниже примере предполагается, что файлы заголовков интерфейс_простой.h и
интерфейс_hairy.h, и вы хотите, чтобы модуль perl назывался «Ext :: Ension». Если тебе нужно
некоторые директивы препроцессора и / или связывание с внешними библиотеками, см. флаги "-F",
«-L» и «-l» в «ОПЦИЯХ».

Найдите имя каталога
Начнем с фиктивного прогона h2xs:

h2xs -Afn Ext :: Ension

Единственная цель этого шага - создать необходимые каталоги и сообщить вам
названия этих каталогов. Из вывода видно, что каталог для
расширение Расширение.

Копировать файлы C
Скопируйте файлы заголовков и файлы C в этот каталог. Расширение.

Создайте расширение
Запустите h2xs, перезаписав старые автоматически сгенерированные файлы:

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

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

Архив и тест
Как обычно, беги

cd Ext / Ension
Perl Makefile.PL
сделать расстояние
сделать
сделать тест

Советы
Важно как можно раньше выполнить "make dist". Таким образом вы легко сможете
слияние(1) ваши изменения в автоматически созданных файлах, если вы решите отредактировать файлы ".h" и
перезапустите h2xs.

Не забываем редактировать документацию в сгенерированном .вечера .

Считайте автоматически сгенерированные файлы только скелетами, вы можете изобрести лучшие интерфейсы
чем мог догадаться h2xs.

Рассматривайте этот раздел только как руководство, некоторые другие варианты h2x могут лучше подойти
твои нужды.

ОКРУЖАЮЩАЯ СРЕДА


Переменные среды не используются.

Используйте h2xs онлайн с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

Команды Linux

Ad