8
Q
Go动态FFI
A
回答
6
简答:没有。 (至少不与GC,gccgo是gcc联然而,所以它可能是可能的)
中回答:但是,您可以静态绑定,也就是说,libffi或libdl然后用它动态加载其他库。
长答案:您可以使用go工具链C编译器和汇编器(例如,参见src/pkg/runtime)在C和ASM中编写go软件包。所以你可以在C或ASM中编写一个FFI作为一个包。
编辑:从以下(也CW现在)的评论
另外,也可以使用syscall
和unsafe
包(很容易在窗口中完成,但我想这将是在linux更难,并非遥不可及上面的第三个解决方案)。
相关问题
- 1. Go动态删除HTML onClick
- 2. Go界面:静态与动态绑定
- 3. 在Rust中混合使用静态和动态库FFI
- 4. 手动安装ffi gem
- 5. Go前端与HTML和Go的互动
- 6. 在Go中存储状态
- 7. GO:服务静态页面
- 8. 多态性GO接口
- 9. SSL BIO和FFI
- 10. Haskell doctest和FFI
- 11. GraphicsMagick FFI问题
- 12. 如何PureScript FFI
- 13. node-ffi模块无法加载32位C DLL - 动态链接错误
- 14. 阴谋FFI依赖
- 15. MinGW上的Ruby FFI
- 16. 开局方案FFI
- 17. FFI 1.0.11不Cygwin的
- 18. Ruby扩展由FFI
- 19. Ruby ffi gem问题
- 20. 来自MacRuby的FFI?
- 21. 绑定FFI和DSL
- 22. LuaJIT FFI有多难?
- 23. FFI和头文件
- 24. 传递记录FFI
- 25. Haskell FFI - mallocForeignPtr用法
- 26. 如何从Go动态创建JSON结构?
- 27. 您可以在GO中动态生成XML吗?
- 28. 测试处理器依靠Go中的动态URL的功能
- 29. Go或Beego支持动态网址路由,如id =?
- 30. Go和JSON:如何动态加载字段
我喜欢中等答案,也许我会尝试。至于长时间的答案,可惜的是,这样的事情已经不是标准软件包的一部分。 – Marko 2010-11-09 14:43:14
难道不是通过使用http://golang.org/pkg/syscall/ LoadLibrary完成的吗?我记得有人编写了代码,可以让你在Go中动态地调用dll中的任何函数,但是我再也找不到这个例子。 – jcao219 2010-11-10 00:19:52
@ jcao219我还没有看到,但它只是窗户。你还需要一种方法来调用库例程和Go – cthom06 2010-11-10 12:56:25