shared-libraries - 我可以在 Go 中使用共享对象吗?

标签 shared-libraries go

我可以在 Go 中使用共享对象吗?


根据围棋FAQ ,您可以使用“外部函数接口(interface)”调用 C 库:

Do Go programs link with C/C++ programs?

There are two Go compiler implementations, 6g and friends, generically called gc, and gccgo. Gc uses a different calling convention and linker and can therefore only be linked with C programs using the same convention. There is such a C compiler but no C++ compiler. Gccgo is a GCC front-end that can, with care, be linked with GCC-compiled C or C++ programs. However, because Go is garbage-collected it will be unwise to do so, at least naively.

There is a “foreign function interface” to allow safe calling of C-written libraries from Go code. We expect to use SWIG to extend this capability to C++ libraries. There is no safe way to call Go code from C or C++ yet.

回答您之前关于 Windows DLL 的问题:不,因为目前没有 Go 的 Windows 实现。有关详细信息,请阅读 can-go-compiler-be-installed-on-windows

关于shared-libraries - 我可以在 Go 中使用共享对象吗?,我们在Stack Overflow上找到一个类似的问题:


go - 是否有可能知道在 HandleFunc 中使用了什么路由

go - 从 golang 中的嵌套映射中检索值

c++ - 加载共享库 : libQt5Multimedia. so.5 时出错:无法打开共享对象文件:没有这样的文件或目录

go - 如何将接口(interface)数组转换为 float

java - 在 Android 上对共享库进行数字签名

perl - 如何跟踪 XS .so 文件?

mongodb - 使用 MongoDB 按多个值进行 Golang 聚合组

http - 第二个FileServer提供html但不提供图像

sharepoint - 使用 WSPBuilder 设置部署时 Web 部件的类别/组

linux - GDB:相对于共享库的地址