xs相关内容

perl xs 模块编写 - 在同一个 xs 文件中使用另一个函数

我是 XS 的初学者,花了一些时间在网上寻找这个答案,但没有运气.问题是 XS 更改了函数的名称,当它进行编译时,我会得到一个未定义的引用错误.例如考虑下面的 XS 代码: size_t矩阵索引 (colIndex, rowIndex,nCols,nRows)size_t colIndexsize_t 行索引size_t nColssize_t nRows代码:size_t 寄存器 i;RETV ..
发布时间:2021-09-13 20:42:24 其他开发

使用 Perl XS 和 PerlIO 制作旧库

我是一个 XS 初学者,我正在考虑更改一个现有的 XS 模块,该模块大量使用 15 年以上的底层 C 库(实际上该模块基本上只是粘到这个库上).问题是我希望能够使用 PerlIO 字符串技巧,例如: open($fh, ' ..
发布时间:2021-06-15 21:02:57 其他开发

如何将数组传递给 Perl XS 中的 C 函数?

如何通过引用 C XS 模块来传递 Perl 数组? my @array = ( 1..20 );XSTEST::test_array_passing(\@array); 我在 XS 中做什么才能看到数组? 解决方案 XS 可以以 AV* 或 SV* 的形式接收对 ARRAY 的引用.后者必须取消对 AV* 的引用. 使用内联 C =>数据;@array = (1 .. 20);$r ..
发布时间:2021-06-15 20:36:19 其他开发

如何自检Perl API中的正则表达式

我正在处理一些需要序列化Perl正则表达式的代码,包括任何正则表达式标志.仅支持标志的子集,因此我需要检测正则表达式对象中何时不支持的标志(例如/u). 当前代码版本执行此操作 static void serialize_regex_flags(buffer *buf, SV *sv) { char flags[] = {0,0,0,0,0,0}; unsigned int i ..
发布时间:2020-11-30 05:03:14 其他开发

如何跟踪XS .so文件?

我有一个小的Perl程序。该程序将加载一个模块。该模块使用 XSLoader 加载.so文件。该Perl在Linux上运行,并使用gcc和 -DDEBUGGING 构建,随后的.so文件也是如此。我可以重新编译。 执行Perl程序时,如何在.so文件中跟踪C函数?我需要按它们运行的​​顺序知道这些函数的名称。 解决方案 下面是使用 gdb的示例进入共享库。我正在使用Linux(Ubu ..
发布时间:2020-10-19 05:32:54 其他开发

“…/ auto / List / Util / Util.so:未定义的符号:... / XSLoader.pm处的PL_stack_sp”仅在Travis CI上使用CGI :: Test _and_运行测试套件时

我有一个名为 CGI :: Github :: Webhook 的Perl模块,其测试套件到目前为止,在Travis CI上的分支主机上都可以正常运行。但是由于它是用于编写CGI脚本的模块,所以我想使用 CGI :: Test 对其进行测试。 但是在分支 cgi-test 中运行的每个Travis CI到目前为止都失败了。除了使用Perl 5.24及更高版本的运行之外,每个失败的运行都包含以 ..
发布时间:2020-09-30 21:52:36 其他开发

有没有办法从XS访问perl中的特殊令牌?

在perl中,特殊标记如__PACKAGE__,__SUB__,__FILE__,__LINE__存在并且可以从脚本中获得. 我想我可能会从XS获得__PACKAGE__的值作为HvNAME( PL_currstash ). 但是如何访问其他人? 是否有特殊的界面可以从XS中访问所有这些人?像:CTX->package,CTX->sub等 解决方案 您可以在toke.c中逐一 ..
发布时间:2020-08-05 20:37:35 其他开发

C ++调用perl代码 - eval_sv不传递参数到脚本

我有下面的示例程序,将参数推送到Perl堆栈,然后调用“eval_sv”。示例perl语句被执行,但我不能检索从C ++作为Perl参数传递的变量。请让我知道我在以下程序中丢失了什么 程序输出 Hello World 测试 100测试完成 此行不打印$ a和$ b的值 string three =“print'Test\\\ '; my $ z = 100; ..
发布时间:2016-10-24 12:58:12 C/C++开发

如何使用Perl的C ++类?

我有一组用C ++编写的类。从Perl脚本调用它们最好的方法是什么?谢谢。 解决方案 我不喜欢SWIG,更喜欢自己编写接口代码。 Perl提供了一种称为“XS”的伪语言,用于连接到C或C ++。不幸的是,为了使用它,你需要至少知道C,Perl,然后了解一些关于解释器API。如果你已经知道Perl和C,不是这样的一大步。请查看XS上的以下核心文档: perlxstut (XS教程) ..
发布时间:2016-10-17 10:45:11 C/C++开发