我正在研究a program,它从c ++代码生成.so
并绑定多种语言(C,C ++,Haskell,Java,Php,Python ...),并且我正在尝试添加对golang的支持。
我认为获得该结果的最佳方法是使用C ++或C版本并创建go绑定,但这必须自动完成。我曾尝试使用Swig,但没有设法使其正常工作(可能是因为我们包含了.so
而不是.cc
),但我只发现了{{ 3}}(使用go tool 6g
)。
我还尝试过使用cgo
创建绑定,该绑定不适用于C ++,并且我无法使其与C绑定一起使用(同样,很可能是由于.so
步骤)。 br />
最后,我必须生成另一个带有一些导出函数的.so
,并且它必须是独立的,这使得编译C ++版本和通过管道(几乎是?)与之交谈变得不可能。
导出功能通常如下:
void init_game(void);
void play_turn(void);
void end_game(void);
您可以找到一个c ++头文件old documentation以及到C的自动生成的接口:here和interface.hh和interface.cc。
可以在prologin.h中找到示例源代码lib.so
。