영어프랑스어스페인어

Ad


온웍스 파비콘

h2xs - 클라우드의 온라인

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터를 통해 OnWorks 무료 호스팅 제공업체에서 h2xs 실행

이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공업체에서 실행할 수 있는 명령 h2xs입니다.

프로그램:

이름


h2xs - .h C 헤더 파일을 Perl 확장자로 변환

개요


h2x초 [옵션 ...] [헤더파일 ... [extra_libraries]]

h2x초 -h|-?|--도움

기술


h2x초 C 헤더 파일에서 Perl 확장을 빌드합니다. 확장에는 기능이 포함됩니다.
C 헤더에 있던 #define 문의 값을 검색하는 데 사용할 수 있습니다.
파일.

XNUMXD덴탈의 모듈 _ 이름 확장자의 이름으로 사용됩니다. module_name이 아닌 경우
제공되면 첫 번째 헤더 파일의 이름이 첫 번째 문자와 함께 사용됩니다.
대문자.

확장에 추가 라이브러리가 필요할 수 있는 경우 여기에 포함해야 합니다. 확장
Makefile.PL은 라이브러리가 실제로 존재하는지 여부와 라이브러리가 어떻게
로드해야합니다. 추가 라이브러리는 -lm -lposix 등의 형식으로 지정해야 합니다.
cc 명령줄에서처럼. 기본적으로 Makefile.PL은
Configure에 의해 결정된 라이브러리 경로. 해당 경로는 인수를 포함하여 증가할 수 있습니다.
형태의 -L/다른/라이브러리/경로 추가 라이브러리 인수에서.

그 이름에도 불구하고, h2x초 뼈대 순수 Perl 모듈을 만드는 데 사용할 수도 있습니다. 참조
-X 옵션을 선택합니다.

옵션


-A, --오토로드 생략
모든 자동 로드 기능을 생략하십시오. 이것은 다음과 같습니다. -c 그러나 또한 제거
.pm 파일의 "use AutoLoader" 문.

-B, --베타 버전
알파/베타 스타일 버전 번호를 사용하세요. 다음을 제외하고 버전 번호가 "0.00_01"이 되도록 합니다.
-v 이 지정됩니다.

-C, --생략-변경
생성 생략 변경 파일을 만들고 POD 템플릿에 HISTORY 섹션을 추가합니다.

-F, --cpp-플래그=추가 플래그
기능에 대한 헤더를 스캔할 때 C 전처리기에 지정할 추가 플래그
선언. 생성된 옵션에 이러한 옵션을 씁니다. 메이크파일.PL 도.

-M, --펑크 마스크=정규병 표현
처리할 기능/매크로를 선택합니다.

-O, --덮어쓰기-확인
기존 확장 디렉토리를 덮어쓸 수 있습니다.

-P, --생략 포드
자동 생성된 스텁 POD 섹션을 생략합니다.

-X, --생략-XS
XS 부분은 생략합니다. 스켈레톤 순수 Perl 모듈을 생성하는 데 사용됩니다. "-c" 및 "-f"는
암시적으로 활성화됩니다.

-a, --gen-접근자
구조체 및 공용체의 각 요소에 대한 접근자 메서드를 생성합니다. 생성된
메소드는 요소 이름을 따서 명명됩니다. 의 현재 값을 반환합니다.
추가 인수 없이 호출된 경우 요소; 요소를
추가 인수와 함께 호출된 경우 제공된 값(및 새 값 반환).
임베디드 구조와 공용체는 완전한 것이 아니라 포인터로 반환됩니다.
구조, 연결 호출을 용이하게 합니다.

이러한 방법은 모두 구조의 Ptr 유형에 적용됩니다. 추가로 두 가지 방법
구조 유형 자체에 대해 구성되며 Ptr 유형을 반환하는 "_to_ptr"
동일한 구조를 가리키고 새 메서드를 구성하고 반환하는 "새" 메서드
구조, XNUMX으로 초기화됩니다.

-b, --compat-버전=버전
지정된 펄 버전과 역호환되는 .pm 파일을 생성합니다.

버전 < 5.6.0의 경우 변경 사항이 있습니다.
- 'our'를 사용하지 않음(대신 'use vars' 사용)
- '경고 사용' 없음

사용 중인 perl 버전보다 높은 호환성 버전 지정
h2xs를 실행해도 효과가 없습니다. 지정되지 않은 h2xs가 기본적으로 다음과 호환되는 경우
h2xs를 실행하는 데 사용하는 perl 버전입니다.

-c, --생략-상수
.xs 파일에서 "constant()"를 생략하고 해당하는 특수화된 "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, --생략-const-func
"const"로 선언된 함수 인수의 경우 생성된 속성에서 const 속성을 생략합니다.
XS 코드.

-m, --gen-tied-var
실험: 헤더 파일에 선언된 각 변수에 대해 perl을 선언합니다.
같은 이름의 변수는 마술처럼 C 변수에 연결됩니다.

-n, --이름=모듈 _ 이름
확장에 사용할 이름을 지정합니다(예: -n RPC::DCE).

-o, --불투명=정규병 표현
정규 표현식과 일치하는 C 유형에 대해 "불투명한" 데이터 유형을 사용하십시오.
이러한 유형은 "typedef"이며 typemap의 유형과 동일합니다. 사용해서는 안 된다
없이 -x.

이것은 정수에 해당하는 "typedef"인 유형이 다음과 같을 수 있기 때문에 유용할 수 있습니다.
OS 관련 핸들을 나타내며 OO 방식으로 이러한 핸들을 사용하고 싶을 수 있습니다.
"$handle->do_something()"에서와 같이. "-o"를 사용합니다. 모든 것을 처리하고 싶다면
불투명한 유형으로 "typedef"된 유형.

일치하는 유형은 흰색으로 칠해집니다(단, 앞에 공백이 없는 쉼표 제외
및 그 사이에 공백이 없는 여러 "*").

-p, --제거-접두사=접두사
Perl 함수 이름에서 제거해야 하는 접두사를 지정합니다. 예:
-p sec_rgy_ XS를 설정합니다. 접두사 키워드 및 함수에서 접두사 제거
"constant()" 메커니즘을 통해 자동 로드됩니다.

-s, --const-subs=서브1, 서브2
다음을 사용하여 자동 로드하는 대신 지정된 매크로에 대한 perl 서브루틴을 작성하십시오.
일정한() 서브루틴. 이러한 매크로는 반환 유형이 다음과 같다고 가정합니다. 이륜 전차 *,
예: -s sec_rgy_wildcard_name,sec_rgy_wildcard_sid.

-t, --기본 유형=유형
내부 유형을 지정하십시오. 일정한() 매크로에 대한 메커니즘 사용. 기본값
IV(부호 있는 정수)입니다. 현재 헤더 스캔 중에 발견된 모든 매크로
프로세스에는 이 유형이 있는 것으로 가정합니다. "h2xs"의 향후 버전은
학습된 추측을 할 수 있는 능력.

--use-new-tests
인셀덤 공식 판매점인 --compat-버전 (-b)가 있으면 생성된 테스트는 "Test::More"를 사용합니다.
5.6.2 이전 버전의 기본값인 "테스트" 대신. "테스트::더"는
생성된 "Makefile.PL"의 PREREQ_PM에 추가됩니다.

--오래된 테스트 사용
이전 "테스트" 모듈을 사용하는 테스트 코드를 강제로 생성합니다.

--건너뛰기-내보내기
"내보내기"를 사용하거나 기호를 내보내지 마십시오.

--건너뛰기-ppport
"Devel::PPPort"를 사용하지 마십시오. 이전 버전으로 이식할 수 없습니다.

--skip-자동 로더
"AutoLoader" 모듈을 사용하지 마십시오. 하지만 유지 일정한() 기능 및 "하위
AUTOLOAD"는 상수입니다.

--건너뛰기-엄격
프라그마 "strict"를 사용하지 마십시오.

--skip-경고
프라그마 "경고"를 사용하지 마십시오.

-v, --번역=버전
이 확장의 버전 번호를 지정하십시오. 이 버전 번호는
템플릿. 기본값은 0.01 또는 "-B"가 지정된 경우 0.00_01입니다. 버전
지정된 숫자여야 합니다.

-x, --autogen-xsubs
헤더 파일의 함수 선언을 기반으로 XSUB를 자동으로 생성합니다. NS
"C::Scan" 패키지가 설치되어 있어야 합니다. 이 옵션이 지정되면
헤더 파일은 "NAME1,NAME2"처럼 보일 수 있습니다. 이 경우 대신 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

# 상수() 또는 AUTOLOAD 없이
h2xs -c rpcsvc/rusers

# RPC라는 확장에 대한 템플릿을 만듭니다.
h2xs -cfn RPC

# 확장자는 ONC::RPC입니다.
h2xs -cfn ONC::RPC

# 확장은 XS 코드가 없는 순수한 Perl 모듈입니다.
h2xs -X 내::모듈

# 확장자는 적어도 Perl5.005_03에서 작동하는 Lib::Foo입니다.
# h2x가 찾을 수 있는 모든 #define 및 열거형에 대해 상수가 생성됩니다.
# foo.h에서
h2xs -b 5.5.3 -n Lib::Foo foo.h

# 확장자는 적어도 Perl5.005_03에서 작동하는 Lib::Foo입니다.
# 상수는 모든 #define에 대해 생성되지만 열거형에 대해서만 생성됩니다.
# 이름이 '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_"는 펄 함수 이름에서 삭제됩니다.
h2xs -n DCE::rgynbase -p sec_rgy_dce/rgynbase

# 확장자는 DCE::rgynbase입니다.
# 접두사 "sec_rgy_"는 펄 함수 이름에서 삭제됩니다.
# 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

# perl.h에 정의 없이 XS를 만들지만 함수 선언은 포함합니다.
# perl.h에서 볼 수 있습니다. 확장 이름은 perl1입니다.
# perl.h를 스캔할 때 정의 -DEXT=extern -DdEXT= -DINIT(x)=
# 문자열이 쉘로 전달되기 때문에 아래에 추가 백슬래시가 있습니다.
# perl 헤더 파일이 있는 디렉토리는
# 경로를 포함하도록 자동으로 추가됩니다.
h2xs -xAn perl1 -F "-DEXT=extern -DdEXT= -DINIT\(x\)=" perl.h

# perl.h에서 볼 수 있는 proto.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 파일이 있고 해당하는
헤더 파일. 이 기능에 액세스할 수 있도록 하는 확장 프로그램을 만드는 방법
펄? 아래 예에서는 헤더 파일이 다음과 같다고 가정합니다. 인터페이스_단순.h
인터페이스_털이.h, 그리고 perl 모듈의 이름을 "Ext::Ension"으로 지정하려고 합니다. 필요한 경우
일부 전처리기 지시문 및/또는 외부 라이브러리와의 연결은 "-F" 플래그를 참조하십시오.
"옵션"의 "-L" 및 "-l".

디렉토리 이름 찾기
h2xs의 더미 실행으로 시작하십시오.

h2xs -Afn 내선::Ension

이 단계의 유일한 목적은 필요한 디렉토리를 만들고
이 디렉토리의 이름. 출력에서 디렉토리가
확장자는 확대.

C 파일 복사
헤더 파일과 C 파일을 이 디렉토리에 복사하십시오. 확대.

확장 만들기
h2xs를 실행하여 이전 자동 생성 파일을 덮어씁니다.

h2xs -Oxan Ext::Ension 인터페이스_simple.h 인터페이스_hairy.h

h2x는 헤더 파일을 찾습니다. 시간 내에 확장 디렉토리로 변경하면 찾을 수 있습니다.
헤더 파일 확인.

보관 및 테스트
평소처럼 실행

cd 확장/엔션
펄 Makefile.PL
거리를 두다
확인
테스트를 하다

힌트
가능한 한 빨리 "make dist"를 하는 것이 중요합니다. 이렇게 하면 쉽게
병합(1) ".h" 파일을 편집하기로 결정한 경우 자동 생성된 파일에 대한 변경 사항 및
h2xs를 다시 실행하십시오.

생성된 문서를 편집하는 것을 잊지 마십시오. .오후 파일.

자동 생성된 파일을 스켈레톤으로만 고려하면 더 나은 인터페이스를 개발할 수 있습니다.
h2xs가 추측할 수 있는 것보다.

이 섹션을 지침으로만 고려하십시오. h2x의 다른 옵션이 더 적합할 수 있습니다.
너의 요구.

환경


환경 변수가 사용되지 않습니다.

onworks.net 서비스를 사용하여 온라인으로 h2xs 사용


무료 서버 및 워크스테이션

Windows 및 Linux 앱 다운로드

Linux 명령

Ad