我有一组用C ++编写的类。从Perl脚本调用它们的最佳方法是什么?感谢。
答案 0 :(得分:13)
我不是特别喜欢SWIG,而是喜欢自己编写接口代码。 Perl附带了一种称为“XS”的伪语言,用于连接C或C ++。不幸的是,为了使用它,你至少需要知道C,Perl,然后学习一些关于解释器API的知识。如果你已经熟悉Perl和C,那么这样就不是一大步了。查看XS上的以下核心文档:
此外,互联网上还有大量的教程和方法。
现在,使用XS与C ++接口需要一些额外的步骤。一开始锻炼可能有点令人沮丧,但是一旦你得到它就会整齐地落实到位。在这方面,核心文档充其量只是稀疏的。但一切都不会丢失。 Mattia Barbon是Perl的wxWidgets绑定的创建者,他写了一个很棒的工具“XS ++”,这使得它几乎变得简单(或者像XS一样简单)。它包含在Wx中,但我们正在努力将其拆分为自己的发行版。这项工作正在进行中。您可以在github上找到Mattia's XS++ code和modified version of mine。
除非向CPAN发布独立的XS ++,我建议学习从其他资源编写XS for C ++:
PS:还有Inline :: CPP模块。如果可行,它可能是最简单的解决方案。我怀疑它可以处理模板。
答案 1 :(得分:10)
“SWIG是一个软件开发工具 连接用C编写的程序 和C ++一起使用各种高级 编程语言。使用SWIG 使用不同类型的语言 包括常见的脚本语言 比如Perl,PHP,Python,Tcl和 红宝石“。
答案 2 :(得分:7)
我通常会选择XS,比如tsee,但在这种情况下还有Inline::C(或Inline::CPP)。我不喜欢SWiG并倾向于避免围绕它建立包裹。