问题标签 [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 投票
2 回答
976 浏览

perl - 使用 XS 返回 Perl 哈希(错误:'void' 不在类型映射中)

我正在尝试添加对 Augeas (Config::Augeas) 的 Perl 绑定的调用。我希望这个新调用返回一个 Perl 哈希。我写了这个:

但是当我构建它时,我得到:

我究竟做错了什么?

0 投票
2 回答
96 浏览

perl - perl 使用来自其他模块的 c 源代码构建模块

我正在开发一个模块,我希望有两个后端,aModule(::PerlArray)Module::PDL(这取决于Module)。两者都需要访问functions.c/.h文件以进行构建。该文件具有模块所需的相当复杂的逻辑。与其将它与每个模块分开分发,是否有某种方法可以将其保留Module::PP在系统上,然后将其添加到或中的适当构建标志中EU::MMM::B考虑到此处的复杂性可能是后者)?

更直观地说

编译生成functions.o和链接。我确定我可以弄清楚如何正确设置标志,但是如何让 Modulefunctions.c在安装时保留文件,以及如何在安装时找到它Module::PDL?有什么地方可以放functions.c/.h吗?

0 投票
2 回答
865 浏览

perl - 如何从 CPAN 手动编译 XS 模块?

我刚刚从 CPAN 下载了一个 XS 模块,但想手动编译它,而不是使用cpan. 运行perl Makefile.PLmake创建.c.o和文件.xs.bs但我没有看到任何.pm可以放入我的路径。我错过了什么?

我不想make install为每个用户都这样做。

0 投票
1 回答
393 浏览

c++ - Perl XSPP - std::string 的多重定义

我正在尝试将一些Google URL 库功能公开为 perl 模块。根据这里和其他地方的一些帖子,看起来XSPP可能是一个不错的起点。这是我到目前为止创建的内容(从 googleurl lib 的编译版本开始):

我创建了这个 xspp 文件(为简洁起见省略了一些方法):

我创建了这个 Makefile.PL 文件:

然后我运行:

..并得到以下错误:

有 xspp 经验的人是否知道可能导致此错误的原因?我可以在上面的 GURL.xsp 文件上成功运行 xspp,它产生的输出对我来说看起来很合理。

0 投票
2 回答
150 浏览

c++ - 从 C++ 中确定 perl 文件的行号和文件名

我正在使用嵌入在我们的应用程序中的 Perl。我们已经安装了很多从 Perl 中调用的 C++ 函数。其中之一是日志记录功能。我想将调用此函数的 Perl 文件的文件名和行号添加到日志消息中。
我知道在 Perl 端我可以使用“caller()”函数来获取这些信息,但是这个函数已经在数百个位置使用,所以我更愿意修改 C++ 端,是否将此信息传递给 C++ XSUB功能,如果是这样,我将如何获得它?

谢谢。

0 投票
2 回答
1199 浏览

perl - 如何在 XS 代码中获取 threads->tid() 值?

我需要在 perl 模块的 *.XS 部分内的 C 函数中获取当前的 perl 线程 ID。

在纯 perl(* .pm 部分)中,我会简单地做:

但是在 XS 中获得这个值的推荐方法是什么?

不幸的是http://perldoc.perl.org/perlthrtut.htmlhttp://perldoc.perl.org/threads.html没有谈到在 XS 中处理线程。

提前致谢

--kmx

0 投票
1 回答
1781 浏览

character-encoding - 更改嵌入式 Vaadin 应用程序的字符编码

我需要在第三方网页中嵌入 Vaadin 应用程序。Web 服务器和应用程序服务器位于不同的域中。由于应用程序的性质,使用 iframe 不是一种选择。所以我使用了 VaadinXS 插件并将应用程序嵌入到一个 div 中。

现在我的问题是:

网页没有 utf 编码(实际上是 windows-1251)。而 Vaadin servlet 默认编码似乎是 utf-8。

问题:

有没有办法覆盖 Vaadin 嵌入式 XS servlet 的字符编码。

0 投票
1 回答
434 浏览

perl - 如何告诉 MakeMaker 在子目录中构建 XS 文件?

我有一个大型项目,我刚刚添加了一些 XS 代码,并且我想保持顶级目录尽可能干净。我想放 XS 文件和 typemap 等。进入子目录,但如果我这样做,MakeMaker 将找不到它们。所以现在,他们只是坐在项目根目录中。

如何告诉 MakeMaker 在子目录中查找 XS 内容,以便可以从那里构建它?

0 投票
2 回答
1380 浏览

perl - 如何手动安装 XS 模块?

如果我错了,请纠正我,但是基于 XS 和 Dynaloader 的模块是那些使用 C/C++ 共享对象 (.so) 而不是 PP (Pure Perl) 的模块?

现在假设我有一台机器,它没有任何网络连接(Solaris 10)并且我想要安装Crypt::OpenSSL::AES(基于 XS 的模块),将AES.pm文件复制到 @INC 中的相关路径不会有任何好处,因为我的系统没有libssl安装。

我的第二个也是最重要的问题是,当我没有 CPAN 时如何安装这些模块?我的方法是:

  1. 首先获取libssl我的平台,编译它,但是我应该把分片对象文件放在哪里以便 perl 可以找到它?
  2. 当我安装并编译了 libssl 并位于它应该在的位置时,现在只需将其复制AES.pm到@INC 中的相关路径就足够了,还是我需要配置/制作它?
0 投票
2 回答
616 浏览

perl - Perl XS 和 C++ 将指针传递给缓冲区

我几乎不知道 C++,所以这无济于事,而且我的 XS 也好不了多少。我正在为 C++ 库创建一个 XS 接口,我几乎所有的方法都可以工作,除了一个。

Perl 中的方法应该如下所示:

该方法被定义为这个 .h 文件:

如果传入 NULL,“缓冲区”将被分配。

还有两个具有不同签名的附加版本的 readPath,但它们不是我想要的。(有趣的是,当我尝试编译时,它告诉我“候选人”是我不想要的两个。)是因为它不理解“char * &”吗?

有人可以帮助我编写需要的 xsub 吗?

我在 Perl 5.14.2 上。

顺便说一句——我还对 T_IV 使用了类型映射“long long int”。我找不到任何关于如何正确地输入 long long 的文档。有什么建议我应该如何长期打字?

谢谢,