我正在尝试编译 RakNet 游戏网络 C/C++ 库以在 Go 中使用。我目前正在使用swig -c++ -go -cgo -intgosize 64 build.swigxx && go build
将项目转换为 Go 接口,但我遇到了以下错误:
build_wrap.cxx:886:56: error: variable or field '_wrap_RakNetworkFactory_set_gorak_aae8103e4a7c6905' declared void
void _wrap_RakNetworkFactory_set_gorak_aae8103e4a7c6905(RAK_DLL_EXPORT *_swig_go_0) {
^
build_wrap.cxx:886:73: error: '_swig_go_0' was not declared in this scope
void _wrap_RakNetworkFactory_set_gorak_aae8103e4a7c6905(RAK_DLL_EXPORT *_swig_go_0) {
^
build_wrap.cxx:2366:1: error: expected '}' at end of input
据我所知,它不喜欢RAK_DLL_EXPORT
被定义为空(#define RAK_DLL_EXPORT
),但我绝对不知道我在做什么,不知道是不是这样。
这个问题似乎特别发生在由 swig 创建的 setter 上,因为如果我删除上面正在发生的头文件,swig 会给我更多类似性质的错误。
唯一模糊地近似于我正在尝试做的事情是这个,但看起来他们正在使用一个完全不同的 RakNet 版本。许多与 swig、cgo 和将 C++ 编译成 go 相关的资源似乎已经过时了,我还没有发现任何用处。
任何比我更了解这些技术的人都可以帮我解决这个问题吗?