我正在尝试让game-music-emu-flash与 FlasCC 一起使用。它使用 C/C++ Game_Music_Emu 库,最初是用 Alchemy 编译的,但我想看看用 FlasCC 是否有性能提升。我想使用带有类型映射的 SWIG 来调用库,因为当前项目 ActionScript 与 FlasCC 不兼容。我正在关注示例中的代码。我还没有对类型图进行编码,但现在我创建了 swig.i 为
#ifdef SWIG
%module libgmeLibModule
%{
#include "gme/gme.h"
%}
%include "gme/gme.h"
#else
#include "gme/gme.h"
#endif
Makefile 通过替换需要匹配的内容来密切跟踪示例。在编译期间,我在表单中都遇到了类似的错误
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
在 Makefile 本身下all:
编译没有错误。
我不太了解 C++,因此不胜感激。也将使用 SWIG 和类型映射是要走的路还是手动包装有意义?我认为 SWIG 会更好,因为 gme 是一个体面的图书馆。