草庐IT

SWIG_NewPointerObj

全部标签

python - 用 dill 序列化 SWIG 扩展

最近,有人要求我“让我们的C++库在云端运行”。基本上,lib是计算secret集型的(计算价格),所以它是有道理的。我构建了一个SWIG接口(interface)来制作一个python版本,目的是将MapReduce与MRJob结合使用。我想序列化文件中的对象,然后使用映射器反序列化并计算价格。例如:classMRTest(MRJob):defmapper(self,key,value):obj=dill.loads(value)yield(key,obj.price())但现在我走到了死胡同,因为dill似乎无法处理SWIG扩展:PicklingError:Can'tpickle:

php - wrap_newBundle 不可用 SWIG 和网络支付

我想在本地设置webpay已安装SWIG在php.ini中添加了webpay扩展然后我尝试执行test.php它显示了以下错误:--------errorwhileopeningfile[libwebpayclient.so]--------StartingwebpayTransactionwrap_newBundlenotavailable有什么想法吗? 最佳答案 检查库libwebpayclient.so是否缺少任何依赖项:使用以下检查来检查依赖项(更正路径以适合您的环境):ldd/usr/lib/php5/20090626+l

php - 如何使用swig为c++生成php接口(interface)so

我已经尝试了一百种方法,但我无法使用swig让我的.so文件与php交互。我可以生成文件,然后我必须编译Zend并与之链接以生成.so但它现在在加载时保持段错误。有人可以教我如何使用swig为C++库生成PHP接口(interface)吗?documentation在swig网站上没有帮助。 最佳答案 Thisexample似乎内容丰富。你试过了吗? 关于php-如何使用swig为c++生成php接口(interface)so,我们在StackOverflow上找到一个类似的问题:

php - SWIG 生成的代码无法在 PHP 5.3.2 undefined symbol : zend_error_noreturn 上运行

我有一个库,在SWIG生成的一些包装代码的帮助下,我一直在PHP5.1.6中成功使用它。(v1.3.40).我刚刚升级到PHP5.3.2,我看到以下错误:PHPWarning:PHPStartup:Unabletoloaddynamiclibrary'/usr/lib/php/modules/myLib_php.so'-/usr/lib/php/modules/myLib_php.so:undefinedsymbol:zend_error_noreturninUnknownonline0经调查,SWIG(myLib_wrap.c)生成的包装器代码似乎包含对PHP函数的调用:zend_e

php - 加载使用 SWIG 制作的 php 扩展时 undefined symbol

我正在尝试加载使用SWIG制作的PHP扩展,但在启动PHP时出现以下错误:PHPWarning:PHPStartup:Unabletoloaddynamiclibrary'/usr/lib/php5/20090626/libtg.so'-/usr/lib/php5/20090626/libtg.so:undefinedsymbol:__gxx_personality_v0inUnknownonline0我尝试加载的扩展名是libtg.so并使用以下命令编译:g++-sharedlibtg_wrap.o-olibtg.so其中libtg_wrap.o是SWIG生成的包装器代码的目标文件。

c# - 如何在 Unity 3D 中包含 SWIG 封装的 C++?

我的目标是获得一个使用SWIG包装的玩具C++库,并且可供Unity中的C#/Mono脚本访问。(换句话说,让库功能在Windows版本的游戏中运行。接下来我将处理Android:)我一直在关注BuildaC#module的组合(痛饮教程),UnityandDLLs(埃里克·伊斯特伍德)和GettingstartedwithSWiGforVisualStudioprojects(技术食谱)。我在VisualStudio2013中生成了两个DLL,并将它们添加到Unity项目中。但是在运行时访问toy方法失败。我遵循的步骤(包括对我收到的错误的常见修复):创建C++项目/自定义构建在Vi

java - 如何使用 SWIG 从 C++ 调用 Java?

我可以使用SWIG从Java调用C++代码,但我找不到任何关于如何执行相反操作(从C++调用Java)的文档。官方SWIG文档说(http://www.swig.org/Doc1.3/Java.html#java_overview):“SWIG使Java程序能够轻松地从Java调用C/C++代码。过去,SWIG无法生成任何代码以从C++调用Java代码。但是,SWIG现在支持完整的跨语言多态性,并且生成代码以调用在包装C++虚拟方法时从C++升级到Java。”但是我找不到它说怎么做的地方!任何帮助是极大的赞赏。谢谢。 最佳答案 其实

c++ - 在 perl 中调试由 SWIG 包装的共享库

我在Perl中使用SWIG包装了我的C/C++代码。由于包装代码,我几乎没有段错误。我正在尝试将ddd与Perl脚本一起使用,但不幸的是,即使我在脚本的一行(调用C/C++代码的代码)上设置断点,ddd也是无法进入C/C++代码。当我调试Perl代码时,有什么方法可以在我的C库中设置断点,或者当我运行此Perl脚本时,您知道调试C库的好方法/工具吗?我正在使用Linux/gcc。 最佳答案 我做了一件简单的事情。我直接在perl解释器上调用了gdb。gdb/usr/bin/perl(gdb)rmyscript#blockthescr

java - 如何通过 SWIG 处理从 C++ 到 Java 的异常

我们正在C++代码上实现一个包装器以暴露给Java客户端。我看过SWIGdocumentsaboutexceptionhandling但这在三层(C++/SWIG/Java)的编码术语中意味着什么?如果有人有工作示例或建议,我将不胜感激。 最佳答案 另请参阅Swig2.0文档中的Java-specificsectiononexceptionhandling.为了避免多次编写该模式,我创建了一个SWIG宏来支持抛出一种C++异常的方法——通过捕获它并抛出相应的Java异常:WRAP_THROW_EXCEPTION(myCppDecla

c++ - 使用 SWIG 将 C++ <vector> 包装为 python NumPy 数组

我有一个C++库,它定义了以下(以及更多类似的)类型:typedefstd::vectorDoubleVec;typedefstd::vectorDoubleVecVec;typedefstd::vectorIntVec;typedefstd::vectorIntVecVec;我正在尝试为处理此类对象的库创建一个python接口(interface)。正如标题所述,我希望我的界面能够与C++std::vector和numpyndarray相互转换。我都看过numpy.i由numpy人和std_vector.i提供来自SWIG人。问题在于numpy.i是为处理C/C++数组(而非C++v