1

我正在尝试编译 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 相关的资源似乎已经过时了,我还没有发现任何用处。

任何比我更了解这些技术的人都可以帮我解决这个问题吗?

4

0 回答 0