我在试着让game-music-emu-flash和FlasCC一起工作。它使用C/C++ Game_Music_Emu库,最初是用FlasCC编译的,但我想看看用Alchemy是否能提高性能。我想使用带有类型映射的SWIG来调用库,因为当前的项目ActionScript与FlasCC不兼容。我遵循的是示例中的代码。我还没有对类型映射进行编码,但现在我将swig.i创建为
#ifdef SWIG
%module libgmeLibModule
%{
#include "gme/gme.h"
%}
%include "gme/gme.h"
#else
#include "gme/gme.h"
#endifMakefile通过替换需要匹配的内容来紧跟样本。在编译过程中,我在表单中都得到了类似的错误
libgmeLib_wrapper.cpp: In function `void _wrap_gme_ay_type_get()':
libgmeLib_wrapper.cpp:2575: error: invalid conversion from `const void*' to `void*'
libgmeLib_wrapper.cpp:2575: error: initializing argument 1 of `void* memcpy(void*, const void*, size_t)'使用编译
"$(FLASCC)/usr/bin/g++" $(BASE_CFLAGS) -04 gmemain.cpp gme/*.cpp -emit-swc=sample.libgme -o libgme.swc在生成文件中,all:下的编译没有错误。
我对C++不是很了解,所以如果有任何帮助,我将非常感激。另外,使用SWIG和类型映射是可行的,还是手动包装有意义呢?我认为SWIG会更好,因为gme是一个相当大的库。
发布于 2012-12-19 20:10:26
Adobe的一位员工帮我解决了这个问题。他甚至编写了一个演示。Adobe论坛主题可以在gme-flascc上找到here和他的演示
https://stackoverflow.com/questions/13860629
复制相似问题