2011-10-25 17 views
10

Voglio scrivere collegamenti Perl per una libreria C++, in modo che la libreria possa essere utilizzata da Perl. Come potrei iniziare a fare questo? Prima ho scritto moduli Perl puri per CPAN.Come iniziare a scrivere binding Perl per una libreria C++?

+1

[Swig ++] (http://www.swig.org/Doc1.3/SWIGPlus.html) mi viene in mente – sehe

+1

L'ultima volta che l'ho provato, Swig ha generato un codice così orribile che sono permanentemente impressionato dal guardarlo . – tsee

risposta

6

C'è SWIG e c'è XS. Ho usato XS per Net::Sharktools che è stata la prima volta che ho scritto un codice XS. Indico perché è stato un caso particolarmente banale e potrebbe essere un buon modo per avere un'idea di ciò che è coinvolto.

perldoc perlxs include anche una sezione sugli aspetti specifici di C++.

+1

Assicurati di controllare l'opzione -hiertype di xsubpp quando hai a che fare con C++ in XS. – tsee

6

Il binding di una libreria C++ è molto più complicato di una libreria C, per molte ragioni. Non nell'ultimo posto perché la toolchain standard è abbastanza centrata. XSpp è molto più potente di XS, anche se ha una curva di apprendimento aggiuntiva.

Mi piacerebbe raccomandare il mio libperl++ per questo, ma è ancora molto nella fase alfa.

+1

Quello che Leon ha detto. Per XS ++ (XSpp) le mie diapositive da YAPC a Pisa possono essere utili: http://steffen-mueller.net/talks/xspp/ Gli esempi XS ++ includono in ordine di complessità: Math :: ThinPlateSpline, Math :: Clipper, Wx – tsee

+0

Oh e ho dimenticato di menzionare "SOOT" come esempio. Ma è così strano che qualcuno che apprende da esso dovrebbe essere più che un po 'folle. :) – tsee

Problemi correlati