Go中的动态FFI

是否可以动态加载外部C库(dll)并在Go中调用其函数?

我知道有cgo哪些用于静态绑定到C函数,但是我对动态方式感兴趣。


莫回无
浏览 293回答 1
1回答

森栏

简短的回答:不。(至少不是与gc一起使用,但是gccgo是gcc可链接的,所以可能)中等答案:但是,您可以静态绑定libffi或libdl,然后使用它来动态加载其他库。长答案:您可以使用go工具链C编译器和汇编器在C和ASM中编写go软件包(例如,参见src / pkg / runtime)。因此,您可以使用Go或C或ASM编写FFI。编辑:从下面的评论(现在也是CW)另外,也可以使用syscall和unsafe软件包来完成此操作(在Windows中很容易,但是我想在Linux中会更困难,并且与上面的第三个解决方案相距不远)。http://code.google.com/p/go/wiki/CallingWindowsDLLs
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go