草庐IT

android-ndk - 是否可以使用带有 cgo 和/或 SWIG 或类似工具的 NDK 在 Go 中构建 Android 游戏?

完全可以使用Go来构建Android游戏吗?我并不拘泥于主题行中提到的技术。我知道somepeople已经用Go构建了一些Android程序,但它们可能是headless的。 最佳答案 不,现在不可能。Go和C程序可以通过cgo进行互操作。但在那种情况下,Go程序必须在将控制权传递给程序的基于C的部分之前启动并初始化其运行时。在Android中使用NDK时,Dalvik虚拟机会通过dlopen调用您的C代码。因此Go运行时将没有机会初始化自己。 关于android-ndk-是否可以使用带

c++ - SWIG:映射 typedef 数组

我正在使用SWIG为某些C++类创建Ruby包装器。这是给我带来麻烦的C++方法的签名:virtualLogPwordProb(VocabIndexword,constVocabIndex*context);这是VocabIndex的定义:#ifdefUSE_SHORT_VOCABtypedefunsignedshortVocabIndex;#elsetypedefunsignedintVocabIndex;#endif这是我从Ruby脚本中调用它的方式:index=8context=[index]putsngram.wordProb(index,context)这是我在运行脚本时遇到

python - SWIG + setup.py : ImportError: dynamic module does not define init function (init_foo)

我正在尝试用swig在test.cpp中包装函数foo。我有一个headerfoo.h,其中包含函数foo的声明。test.cpp依赖于位于/usr/lib64ex.h和共享对象文件libex.so/我关注了blogpostfromhere.我可以使用pythonsetup.pybuild_ext--inplace构建模块。但是,当我尝试导入它时,出现以下错误,我不确定我遗漏了什么,因为大多数其他出现此错误的问题都没有使用setup.py文件。下面是我目前拥有的示例。导入_foo时的错误:>>>import_fooImportError:dynamicmoduledoesnotdefi

python - SWIG C 到 Python 整数数组

我正在尝试使用swig从python访问具有以下原型(prototype)的C函数:intcosetCoding(intwrittenDataIn,intnewData,constintmemoryCells,int*cellFailure,intfailedCell);Swig创建.so没有问题,我可以将它导入python,但是当我尝试使用以下内容访问它时:cosetCoding.cosetCoding(10,11,8,[0,0,0,0,0,0,0,0],0)我得到以下回溯:Traceback(mostrecentcalllast):File"",line1,inTypeError:

使用 SWIG 的 C++ 到 C 包装器(用于 FLTK)

我需要为FLTKC++类生成包装器以在纯C中使用它。我知道,SWIG可以做到这一点,而且我知道如何为C#、Python等生成包装器。但我不知道如何使用SWIG将C++包装为C。这是一个简单的任务,但我找不到答案:)请帮忙。 最佳答案 我认为SWIG不支持开箱即用的C包装器的生成。您始终需要指定目标语言。2008年有GSoCproject写一个Cbackend,但这显然从未完成/并入SWIG。 关于使用SWIG的C++到C包装器(用于FLTK),我们在StackOverflow上找到一个类

c++ - 使用 SWIG 对 C++ 库进行 Matlab 绑定(bind)

我已经在使用SWIG将一些C++库移植到Python中,结果的质量给我留下了深刻的印象。所以我想坚持使用SWIG..最近有人问我要一个Matlab端口。这样的想法实际上已经在我的todolist中了。但每次我在google对Matlab及其调用C/C++代码的几种方法的低技能)。据我了解,在主分支中存在一种未维护且几乎没有文档记录的方法,并且在此方向上的许多其他尝试都没有达到足够成熟以成为主分支的一部分:link.我想跨平台,因此我认为COM方式可能不是我的解决方案。不过,这一次我发现有一个分支看起来相当有前途:link有人已经测试过这个解决方案了吗?万一,一个从Matlab调用移植的

c++ - 使用 SWIG 包装对象从 C++ 调用 Python 函数的最简洁方法是什么

我有以下代码,它使用Python回调函数实现了一个简单的C++类(ObjWithPyCallback)。这个想法是用“this”作为单个参数来调用Python函数。问题在于,由于ObjWithPyCallback是一个SWIG包装的对象,我需要SWIG类型信息才能创建一个Python对象。问题在于它位于SWIG生成的文件“ObjWithPyCallback_wrap.cxx”中。SWIG可以生成头文件吗?到目前为止,我还无法做到这一点。但是,即使使用头文件,SWIG和我的主要实现之间也存在循环依赖关系,这很烦人。如果可能的话,我想找到一种方法来避免它。最终,ObjWithPyCallb

c++ - SWIG 包装库中 __cxa_allocate_exception 期间的段错误

在为Ruby开发一个SWIG封装的C++库时,我们在C++代码内的异常处理过程中遇到了无法解释的崩溃。我不确定重新创建问题的具体情况,但它首先发生在调用std::uncaught_exception期间,然后在一些代码更改后,移至__cxa_allocate_exception在异常构造期间。GDB和valgrind都没有提供任何有关崩溃原因的见解。我找到了几个类似问题的引用资料,包括:http://wiki.fifengine.de/Segfault_in_cxa_allocate_exceptionhttp://forums.fifengine.de/index.php?topic

c# - 包装包含 vector 的模板类时如何让 SWIG 应用模板?

我正在尝试使用SWIG包装(在C#中)一些包含模板类的c++代码,该模板类本身包装了std::vector.我在互联网上看到了有关如何为vector类型声明模板的各种引用资料,但无法使其与额外的抽象层一起使用。这就是我在interface.i文件中所做的,例如://interface.ifile%modulemyNamespaceWrapper%{#include"myVector.h"%}%include"myVector.h"%include"std_string.i"%include"std_vector.i"namespacestd{%template(vector_MyTyp

php - 使用 SWIG 创建 PHP C/C++ 扩展模块

我已经为PHP编写了一些C/C++扩展模块,使用“老式方式”-即使用手动方式(如SarahGolemon在她的书中所描述的)。这对我来说太繁琐了,因为我很懒,想尽可能地自动化。另外,我现在使用SWIG来生成Python扩展,我越来越喜欢使用它。我正在考虑使用SWIG来生成我future的PHP扩展。我在生产服务器上使用PHPv5.2(及更高版本)。我的问题是:SWIGPHP界面是否稳定(即可以投入生产)?如果您对问题1的回答是肯定的-您是否在您的生产站点中使用它?在使用SWIG创建PHP扩展、模块时是否需要注意任何“陷阱”? 最佳答案