2011-10-25 8 views
10

Tôi muốn viết liên kết Perl cho thư viện C++, để thư viện có thể được sử dụng từ Perl. Làm thế nào tôi có thể bắt đầu làm điều này? Tôi đã viết các mô-đun Perl tinh khiết cho CPAN trước đây.Làm thế nào để bắt đầu viết các ràng buộc Perl cho một thư viện C++?

+1

[Swig ++] (http://www.swig.org/Doc1.3/SWIGPlus.html) xuất hiện trong tâm trí – sehe

+1

Lần trước tôi thử nó, Swig đã tạo ra mã khủng khiếp như vậy mà tôi vĩnh viễn bị sẹo khi nhìn vào nó . – tsee

Trả lời

6

SWIG và ở đó XS. Tôi đã sử dụng XS cho Net::Sharktools, đây là lần đầu tiên tôi viết bất kỳ mã XS nào. Tôi chỉ vào nó bởi vì nó là một trường hợp đặc biệt tầm thường, và có thể là một cách hay để có được một ý tưởng về những gì có liên quan.

perldoc perlxs cũng bao gồm một phần về các khía cạnh cụ thể của C++.

+1

Đảm bảo kiểm tra tùy chọn -hiertype của xsubpp khi xử lý C++ trong XS. – tsee

6

Việc ràng buộc thư viện C++ phức tạp hơn nhiều so với thư viện C, vì nhiều lý do. Không phải ở vị trí cuối cùng bởi vì chuỗi công cụ chuẩn là trung tâm C khá. XSpp mạnh hơn rất nhiều so với XS đơn giản, mặc dù nó có đường cong học tập bổ sung.

Tôi rất muốn giới thiệu libperl++ cho riêng mình, nhưng nó vẫn còn rất nhiều trong giai đoạn alpha.

+1

Điều Leon nói. Đối với XS ++ (XSpp) slide của tôi từ YAPC ở Pisa có thể hữu ích: http://steffen-mueller.net/talks/xspp/ Ví dụ XS ++ bao gồm theo thứ tự phức tạp: Toán học :: ThinPlateSpline, Math :: Clipper, Wx – tsee

+0

Oh và tôi đã quên đề cập đến 'SOOT' làm ví dụ. Nhưng đó là kỳ lạ đến nỗi bất cứ ai học hỏi từ nó sẽ phải có nhiều hơn một chút điên rồ. :) – tsee