2011-10-25 2 views
10

C 라이브러리의 Perl 바인딩을 작성하여 Perl에서 라이브러리를 사용할 수있게하려고합니다. 어떻게해야할까요? CPAN을위한 순수 Perl 모듈을 작성했습니다.C++ 라이브러리의 Perl 바인딩을 작성하는 방법은 무엇입니까?

+1

[Swig ++] (http://www.swig.org/Doc1.3/SWIGPlus.html)가 떠오른다 – sehe

+1

마지막으로 시도해 보니, 끔찍한 코드가 생성되어 영구히 상처를 입었다. . – tsee

답변

6

SWIG과 거기에 XS가 있습니다. XS 코드를 처음 작성한 Net::Sharktools에 XS를 사용했습니다. 나는 그것이 특별히 사소한 사례 였기 때문에 그것을 지적하고, 무엇이 관련되어 있는지에 대한 아이디어를 얻는 좋은 방법 일 수있다.

perldoc perlxs에는 C++ 관련 부분도 포함되어 있습니다.

+1

XS에서 C++을 다룰 때 xsubpp의 -hiertype 옵션을 확인하십시오. – tsee

6

C++ 라이브러리를 바인딩하는 것은 많은 이유로 C 라이브러리보다 훨씬 까다 롭습니다. 표준 도구 체인이 C 중심이기 때문에 마지막 위치에 있지 않습니다. XSpp은 추가 학습 곡선이 있지만 일반 XS보다 훨씬 강력합니다.

나는 이것을 위해 내 자신의 libperl++을 추천하고 싶지만 여전히 알파 단계에 있습니다.

+1

레온이 말한 바. XS ++ (XSpp)의 경우 피사의 YAPC에서 얻은 슬라이드가 유용 할 수 있습니다. http://steffen-mueller.net/talks/xspp/ XS ++ 예제에는 복잡성 순서가 포함됩니다. Math :: ThinPlateSpline, Math :: Clipper, Wx – tsee

+0

Oh , 나는 'SOOT'를 예로 들어 깜박했다. 그러나 그것은 매우 이상한 것이기 때문에 그것을 배우는 사람은 조금 미쳐야합니다. :) – tsee

관련 문제