2011-10-25 15 views
10

C++ライブラリ用のPerlバインディングを書いて、Perlからライブラリを使用できるようにします。どのように私はこれをやり始めますか?私は前にCPAN用の純粋なPerlモジュールを書いてきました。C++ライブラリ用のPerlバインディングを作成するにはどうすればよいですか?

+1

[Swig ++](http://www.swig.org/Doc1.3/SWIGPlus.html)が心に浮かぶ – sehe

+1

最後に私はそれを試しましたが、Swigはそれを見て永久に傷ついているような恐ろしいコードを生成しました。 – 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)の場合、PisaのYAPCのスライドは便利です:http://steffen-mueller.net/talks/xspp/ XS ++の例には、複雑さの順に含まれています:Math :: ThinPlateSpline、Math :: Clipper、Wx – tsee

+0

Oh私は一例として 'SOOT'に言及するのを忘れていました。しかし、それは非常に奇妙なことは、それから学ぶ誰もが少し狂気以上でなければならないだろう。 :) – tsee

関連する問題