问题标签 [perl-xs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
216 浏览

perl - 我可以抑制“%s 的 Perl API 版本 %s 与 %s 不匹配”错误吗

我将一个 Perl 模块 ( DBD::Pg) 从一个系统复制到另一个系统,以便对 Mojolicious 项目进行一些快速检查。morbo在新系统上,当我在(Mojolicious 测试网络守护程序)下运行它时一切正常。但是当我尝试运行测试(通过Module::Build安装程序)时,我得到了错误:

DBD::Pg 的 Perl API 版本 v5.16.0 与 /usr/local/lib/perl/DynaLoader.pm 第 216 行的 v5.20.0 不匹配。

我研究了为什么会得到这个,并阅读了perldoc中的解释。但是由于项目在 下运行morbo,这对我来说似乎意味着在这种情况下版本不匹配可能是微不足道的。看起来 PerlXS 确实允许禁用 VERSIONCHECK,但我看不出在运行 Perl 脚本时如何应用它。

0 投票
1 回答
90 浏览

perl - 无法在 CentOS 6 上编译 Crypt::Sodium

系统安装的 Perl 是 5.10.1 版本,我知道它是旧的;这些是基于 RHEL 的发行版的乐趣!cpan无论是使用还是下载模块,我都会得到相同的结果make

第715 行周围的部分如下所示:

我假设“不在类型映射中”错误是最初错误的结果,但我对 Perl 模块的构建方式完全没有经验;我什至不确定这个 XS 的东西是什么。关于如何继续的任何建议?

0 投票
1 回答
105 浏览

perl - 为什么我不能在 Strawberry Perl 5.28.1 上构建“真正的”编译指示模块?

我正在从头开始重建 Windows 10(64 位)工作站,并且在构建一个特定的 CPAN 模块时遇到了障碍:true。这是一个完善的模块——它最后一次更新是在 2011 年!——我已经在以前版本的 Strawberry Perl 上使用它多年了,直到并包括 5.26。我对出了什么问题感到困惑。

我构建模块如下:

我不知道关于 pTHX 的警告是重要的还是可以忽略的。无论如何,它确实会生成一个输出文件true.xs.dll

但该文件无法使用:

Dynaloader上的文档并没有真正帮助,但第Dynaloader.pm193 行附近的代码确实提供了一个提示:

所以我的工作理论是在最新的 Perl 中“某些东西”发生了变化,导致true模块中的代码腐烂。但是我的理论有一个缺陷:至少有一个CPAN 测试器已经成功构建true(尽管他们是用 32 位 perl 完成的)。

我不知所措。有人有什么想法我可以试试吗?

0 投票
0 回答
1026 浏览

c++ - 升级到 5.26 后自定义 xs 上的可加载库和 perl 二进制文件不匹配

我有一个具有 C++ 和 perl 模块的应用程序。我有一个自定义的 xs 模块 crypt.xs(不是 perl 提供的模块) 以前我们的 perl 模块是用 5.16.0 perl 版本构建的。

我有另一个 C# 应用程序,它通过 System.Diagnostics.Process 执行一些 perl 命令。

在我将 perl 版本升级到 5.26.2 之前,所有这些都运行良好

升级后,相同的 System.Diagnostics.Process 出现标准错误

我用谷歌搜索并发现许多线程都解决了同样的问题,但问题出在标准 perl 模块上,使用 cpan 或 pacman 重建可以解决问题。

但这里它是一个自定义的用户定义的 xs 模块。

此外,我使用 cmake 来查找 perl 库,并且我已经更新了它的版本。所以不知道为什么仍然会出现这个错误。

我将如何进行调试?

任何帮助表示赞赏