我有一组用C++编写的类。从Perl脚本调用它们的最佳方法是什么?谢谢。
最佳答案
我并不特别喜欢SWIG,而是更喜欢自己编写接口(interface)代码。 Perl带有一种称为“XS”的伪语言,用于连接C或C++。不幸的是,要使用它,您将需要至少了解C,Perl,然后再学习一些有关解释器API的知识。如果您已经非常了解Perl和C,那么这并不是什么大步骤。看一下以下有关XS的核心文档:
此外,互联网上还有很多教程和操作方法。
现在,使用XS连接C++需要一些额外的步骤。刚开始工作时可能会感到有些沮丧,但是一旦您掌握了它,它就会整齐地摆放到位。在这方面,核心文档充其量是稀疏的。但是,一切并没有丢失。 Perl的wxWidgets绑定(bind)的创建者Mattia Barbon编写了一个出色的工具“XS++”,使这几乎简直变得简单(或与XS一样简单)。它包含在Wx中,但我们正在努力将其拆分成自己的发行版。这项工作正在进行中。您可以在github上找到Mattia's XS++ code和modified version of mine。
除非将独立的XS++发布到CPAN,否则我建议从其他资源中学习为C++编写XS:
PS:还有Inline::CPP模块。如果可行,那可能是最简单的解决方案。我怀疑它可以处理模板。
关于c++ - 如何使用Perl中的C++类?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/933844/