草庐IT

perl-critic

全部标签

c++ - SWIG:仅使用 header 和共享库为 Perl 包装 C++,无法定位可加载对象错误

我正在尝试学习SWIG,但在让SWIG在Linux机器上使用perl时遇到了一些问题。我有文件Dog.h、Crow.h、Animal.i和libmylib.so。所有这些文件都在同一个目录中。libmylib.so是使用Dog.cpp和Crow.cpp编译的,它们分别引用Dog.h和Crow.h。我的Animal.i文件如下:%moduleAnimal%{/*Includestheheaderinthewrappercode*/#include"Dog.h"#include"Crow.h"%}/*Parsetheheaderfiletogeneratewrappers*/%includ

c++ - 是否有 Perl 的 __DATA__ 段的 C++ 等价物(或等价技术)?

有人知道Perl的__DATA__段的C++等价物吗?对于不熟悉Perl的人来说,__DATA__段是Perl文件末尾的(可选)注释;后面的内容被认为是一个(虚拟)文件的内容,Perl可以通过DATA文件句柄访问(读取,写入)该文件。我正在寻找类似于在C++程序中使用的东西(不要问,不要告诉)。谢谢 最佳答案 一般情况下没有这样的东西。但是,LinuxELF二进制格式允许inclusionofdatafilesviatheGNUtoolobjcopy.在Windows上,您可以使用resourcefiles并分配链接器以将其包含在可

c++ - Perl:IPC::Shareable 和 SWIG'ed C++ 对象不一致

对于我的某个Perl项目,我需要多个Perl进程共享一些位于C++库中的资源。(别问,这不是这个问题的核心,只是上下文。)因此,我试图在这种情况下深入研究两个"new"领域:IPC::Shareable,并使用SWIG包装C++。看来我在那里做错了什么,这就是我想问的问题。在C++方面,我编写了一个小型测试类Rectangle,其中包含一个空构造函数、一个set和一个size成员函数。然后我将该类包装在SWIG生成的Perl包example中。在Perl方面,我尝试了SWIG模块是否按预期工作:useexample;my$testrec=newexample::Rectangle;$t

java - 从其他语言(如 Java、PHP、Perl、Python 等)调用 C/C++ 代码的最佳方式是什么?

从其他语言(如Java、Python、Perl、PHP等)调用C/C++的最佳方式是什么? 最佳答案 来自PerlInline::CInline::CPPInline::JavaInline::PythonInline::Lua摘自Inline::C-Cookbook:useInlineC=> 关于java-从其他语言(如Java、PHP、Perl、Python等)调用C/C++代码的最佳方式是什么?,我们在StackOverflow上找到一个类似的问题: h

哪个上下文使此Perl 6 ZIP操作员感到困惑?

考虑一下我创建哈希的程序。然后,我想更改其中的两个值:my$hash=%(wallet=>100,gave=>0,received=>0,);for^1{$hashZ+=};dd$hash;这样,最后一行for什么也不做,也没有警告。哈希没有变化:Hash$hash=${:gave(0),:received(0),:wallet(100)}添加另一个语句改变了行为:my$hash=%(wallet=>100,gave=>0,received=>0,);for^1{$hashZ+=;True};dd$hash;现在,IntploteEdit可以做到这一点,但是有一个警告(尽管当我发现使用时,我对

c++ - 用于 C++ 应用程序的 Perl/Tk GUI

我必须使用C++完成一个需要GUI的大学项目。我想将Perl/Tk用于GUI,但我不确定如何将C++链接到Perl。该项目需要能够来回传递变量。任何人都可以指出一些好的教程/书籍的方向来链接这两者,或者关于我应该如何解决这个问题的任何想法,因为我以前从未需要链接两种语言。 最佳答案 我是working在library上使它尽可能简单,但它仍然是一个alpha版本。 关于c++-用于C++应用程序的Perl/TkGUI,我们在StackOverflow上找到一个类似的问题:

Ruby段落模式与Awk和Perl

假设您有一个文件,其中有五个块数据块,由两个或更多数据隔开\n分开记录(通用文本格式)。如果您运行尴尬和RS=""您将尴尬设置为将块分为记录。然后您可以设置FS=\n将块的线分离为字段。例子:$catlinesf1,r1f2,r1then2\n:f1,r2then3\n:f1,r3f2,r3then4\n:f1,r4f2,r4then6\n:f1,r5这惯用将块分为记录和线条尴尬的字段的方法是:$awk'BEGIN{RS="";FS="\n";OFS="|"}{$1=$1;printf"NR:%d,NF:%d,record:\"%s\"\n",NR,NF,$0}'linesNR:1,NF:2,

c++ - 如何将数组从 perl 传递到内联 C++?

我不知道这是一个错误还是什么。以下代码适用于Inline::C但不是Inline::CPP#!/usr/bin/perlusewarnings;useInlineC;my@array=(1..10);printfindAvLen(\@array),"\n";__END____C__intfindAvLen(AV*arrayIn){returnav_len(arrayIn);}以上运行正常,但替换C与CPP,我收到错误Can'tlocateauto/main/findAvLen.alin@INC...我可以让其他内联C++代码工作。例如,可以将变量列表传递给带有省略号的内联代码,就像它们

c++ - Strawberry perl + Inline::CPP + <sstream> 未编译

也许有人可以帮助我理解。为什么会出现这个错误。我正在尝试构建使用Inline::CPP的C++代码。例子如下:#!/usr/bin/envperlpackagemainv0.1.0;usestrict;usewarnings;useInline(CPP=>CPP#ccflags=>'-std=c++11',ccflags=>'-std=gnu++11',clean_after_build=>0,clean_build_area=>0,);1;__END__此代码在linux下编译没有错误,但在strawberryperl5.26.2x64下会产生以下错误:"D:\devel\perl\

类似 C++ 的 Moose 与 Perl 的 OOP 用法

我一直在玩弄Moose,对它有所了解。我想要一个纯虚函数的例子,就像在C++中,但用Moose的说法(特别是在C++中)。我知道,即使Moose采用了比普通Perl更严格的模型,仍然有不止一种方法可以完成我的要求(通过方法修饰符或SUPER::调用)。这就是为什么我特别要求一个尽可能类似于C++的实现。至于“为什么”?这个限制?主要是出于好奇,但也计划将一些C++代码移植到带有Moose的Perl中,以一种以C++为中心的人大多数可以认同的方式。 最佳答案 我可以想到这种使用角色而不是子类化的方式:{packageAbstractR