4

Can I use shared objects with Go?

4

1 回答 1

6

根据 Go FAQ,您可以使用“外部函数接口”调用 C 库:

Go 程序是否与 C/C++ 程序链接?

有两个 Go 编译器实现,6g 和朋友,一般称为 gc 和 gccgo。Gc 使用不同的调用约定和链接器,因此只能与使用相同约定的 C 程序链接。有这样的 C 编译器,但没有 C++ 编译器。Gccgo 是一个 GCC 前端,可以小心地与 GCC 编译的 C 或 C++ 程序链接。然而,因为 Go 是垃圾收集的,所以这样做是不明智的,至少天真地这样做是不明智的。

有一个“外部函数接口”允许从 Go 代码安全调用 C 编写的库。我们希望使用 SWIG 将此功能扩展到 C++ 库。目前还没有从 C 或 C++ 调用 Go 代码的安全方法。

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

于 2010-02-12T20:14:46.593 回答