xs

    5热度

    1回答

    我几乎不知道C++,所以没有什么帮助,而且我的XS也没有太大改进。我为C++库创建了一个XS接口,几乎所有的方法都在工作,除了一个之外。 Perl中的方法应该是这样的: $return_data = $obj->readPath($path); 的方法被定义为这个.h文件: int readPath(const char* path, char* &buffer, bool flag=true

    0热度

    2回答

    我有关于Linux上链接的以下问题: 假设我有一个使用Qt的Foo类。要构建这个类,我必须使用qmake来生成Makefile。 后来我想用这个类Foo作为Perl模块,它是一个共享库。但是,为了构建它,我必须使用Perl的MakeMaker来生成它自己的Makefile。 我现在这样做的方式是将类Foo创建为静态库,并在构建Perl模块的共享库时将其链接到Foo的静态库。 问题是,当构建Perl

    2热度

    1回答

    我正在尝试为一个序列化/反序列化库编写XS胶水代码,它能够处理任何提供接口的任何东西。我希望能够使用伪文件句柄,我与 open $reader, '<', \$in; open $writer, '>', \$out; 所以使用FILE*映射似乎并没有下班。由于我没有发现任何好的文档,我打得周围,得出了以下XS片段: void write_buf (fh, string); INPUT:

    11热度

    2回答

    我正在研究一些需要序列化Perl正则表达式的代码,包括任何正则表达式标志。只支持一部分标志,所以我需要检测像/u这样的不受支持的标志是否在正则表达式对象中。 代码的当前版本做到这一点: static void serialize_regex_flags(buffer *buf, SV *sv) { char flags[] = {0,0,0,0,0,0}; unsigned i

    8热度

    1回答

    我更喜欢XS初学者,我正在考虑更改现有的使用15年以上底层C库的XS模块(实际上,该模块基本上只是粘合到这个库)。问题是,我想能够使用PerlIO的串挂羊头卖狗肉,如: open($fh, '<', \$string); ,然后通过$fh到XS胶图书馆在期待FILE。问题是,XS有: int _parse (entry_ref, filename, file, preserve=FALSE)

    7热度

    2回答

    我想写暴露片库,以 Perl代码为可写入流接口一些XS码。下面 get_stream功能应该是 准备并返回一个PerlIO的对象的构造。我想我只需要 Write和Close方法,所以我留下了所有其他功能插槽的空白。 typedef struct { struct _PerlIO base; mylib_context* ctx; } PerlIOmylib; /* [..

    0热度

    2回答

    我试图从一些XS码返回使用intptr_t类型: intptr_t my_func(self) myObjPtr self CODE: RETVAL = (intptr_t) self; OUTPUT: RETVAL 我的类型映射没有关于intptr_t什么,所以当然dmake失败Could not find a typemap for

    3热度

    1回答

    我试图做一个XS相当于此: package RefTestPP; use strict; use warnings; sub new { my ($class, $self) = (@_, {}); return bless $self, $class; } 1; 这种构造的应该是“autovivify”这是当被称为RefTestPP->new()基地,或使用

    6热度

    2回答

    纠正我,如果我错了,但基于XS和Dynaloader的模块是那些使用C/C++共享对象(.so)和哪些不是PP(纯Perl)? 现在假设我有一台机器,它没有任何网络连接(Solaris 10),并且我希望例如安装Crypt::OpenSSL::AES(基于XS的模块),将AES.pm文件复制到@INC中的相关路径不会做任何好事,因为我的系统没有安装libssl。 我的第二个也是最重要的问题是,我没

    4热度

    3回答

    我正在开发一个Perl模块,它有很多XS代码并且还使用Dist::Zilla来管理打包。什么是有效测试事物的最佳方式?我知道dzil test,但是这很慢,因为它每次调用时都会执行完整的编译/编译/测试循环。 只更新自上次测试以来需要更新的部件以及只能运行某些测试脚本而不是全部测试脚本。任何人都有他们喜欢的解决方案?