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++?
risposta
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++.
Assicurati di controllare l'opzione -hiertype di xsubpp quando hai a che fare con C++ in XS. – tsee
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.
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
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
- 1. Come iniziare a scrivere applicazioni per iPad?
- 2. Come iniziare a scrivere un compositing WM?
- 3. Come iniziare a scrivere un visualizzatore musicale in C++?
- 4. Come scrivere una libreria JIT?
- 5. Come devo iniziare a scrivere i driver dei dispositivi?
- 6. In quali lingue oltre a C posso scrivere una libreria C?
- 7. Come iniziare a scrivere test di unità per un'applicazione legacy Embedded C - moduli strettamente accoppiati?
- 8. Per iniziare a utilizzare Boost.Test
- 9. Come posso iniziare a scrivere un transpiler? È possibile?
- 10. Iniziare a scrivere un'app desktop che parla con un iPhone
- 11. Come incorporare una libreria C++ in una libreria C?
- 12. Dove posso iniziare a scrivere un media server in C# come PlayOn
- 13. Come scrivere macchine a stati con C#?
- 14. Come scrivere un server HTTP in Perl?
- 15. Come iniziare a utilizzare BouncyCastle?
- 16. Come scrivere la libreria C.so per sostituire la libreria .so C++ esistente?
- 17. Come scrivere un binding di tasti in emacs per una facile ripetizione?
- 18. Quale libreria C++ usare per scrivere un servizio/demone multipiattaforma?
- 19. Struttura di directory per una libreria C++
- 20. È possibile collegare staticamente una libreria Crystal a da C?
- 21. Quali sono le alternative per una libreria multidatabase per C/C++?
- 22. Come posso iniziare a contribuire a GNOME?
- 23. Libreria Java per scrivere una tabella sulla riga di comando
- 24. ZeroMQ/ØMQ/0MQ come iniziare?
- 25. C++/MATLAB Mex binding
- 26. Come iniziare a utilizzare Chainsaw per Log4j?
- 27. C'è una semplice libreria per C++ per disegnare sullo schermo?
- 28. Binding una classe a un'interfaccia
- 29. Creazione di un wrapper Objective-C per una libreria C++
- 30. Come scrivere questo meglio in perl
[Swig ++] (http://www.swig.org/Doc1.3/SWIGPlus.html) mi viene in mente – sehe
L'ultima volta che l'ho provato, Swig ha generato un codice così orribile che sono permanentemente impressionato dal guardarlo . – tsee