使用编译的C库使用Perl?

问题描述 投票:0回答:5
主,如果您是Perl的新手。您不想看XS(我不是Perl的新手,我不想看XS)。请参阅

inline::c

inline::cpp

有关Perl的C和C ++的介绍,请参见perl。只有在您想开始通过或返回复杂的数据结构(甚至可能没有)时,才需要更深入地钻入XS接口。
c++ perl apache
5个回答
8
投票

看起来您想与Perl的C库进行通信。您需要阅读有关XS接口的更多信息,请阅读Perldocperlxs

perldocperlxstut
。  如果您想进行反向(从c调用perl),也可以通过perldocperlguts

3
投票
读取。

当您遇到特定问题时,请给另一个刺耳的人,并且有人肯定可以为您提供帮助。 :) 如果您选择不走内线C路线,Perl已建立了支持Sockets对iPC进行IPC的很好的教程,以及一些

OBjects

通常可以帮助您使用插座(加上

Google

3
投票

如果您不想使用Inline :: CPP,则需要为您的C ++库创建模块。可以使用H2xsh2xs --autogen-xsubs自动完成。首先从CPAN安装C ::扫描。 首先,我要说的是,XS一组相对较小的关键字,使CRATE C库供Perl使用更容易使用(请参阅Perlxstut

Perlxs

1
投票
Perlapi

),这又需要了解Perl编译器的工作原理(参见perlguts,以及某种过时但仍然非常有用的perl gperl胆量示出

)。同时要学习很多。简而言之:


1
投票
perlapi =>中度硬

perl内部工作=>非常硬 上面的所有人同时=>ouch 也就是说,如果您想包装C ++库,请查看CPAN上的extutils ::XSPP模块。它带有一个非常简单的例子。该模块不旧,并且仍然得到改进,但它使包装C ++更加方便。 PS:如果您打算一次学习所有内容,请以示例学习。查看DeanRoehrich的食谱。也许使用一些简单的XS模块作为型号:Parse::exuberantctags

Math::fftW
    或CPAN上的其他众多。
  • 我如何提供那条路?
  • use Inline C => Config => LIBS => '-L/home/dennis/perl_extension/inline_c_change_experiment/ -lMyLib'; use Inline C => Config => LIBS => '-L/home/dennis/perl_extension/inline_c_change_experiment/ -lMyLib.so';
  • 没有成功。我还尝试了两个变体中的双引号。
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.