是否可以动态加载外部C库(dll)并在Go中调用其函数?我知道有cgo哪些用于静态绑定到C函数,但是我对动态方式感兴趣。
1 回答
森栏
TA贡献1810条经验 获得超5个赞
简短的回答:不。(至少不是与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
- 1 回答
- 0 关注
- 292 浏览
添加回答
举报
0/150
提交
取消