【问题标题】:Can I use shared objects with Go?我可以在 Go 中使用共享对象吗?
【发布时间】:2011-01-16 07:42:51
【问题描述】:

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

【问题讨论】:

    标签: shared-libraries go


    【解决方案1】:

    根据 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

    【讨论】:

    • 我看到他用“dll”标记了他的问题,但共享对象不是 Windows 独有的,对吗?
    • 其实你可以调用Windows DLL函数,Go有部分Windows实现。只是还没有很好的记录。
    • 酷...你有链接或更多信息吗?
    • @Justin 最近有一个关于它的邮件列表线程:groups.google.com/group/golang-nuts/browse_thread/thread/…
    猜你喜欢
    • 2011-04-12
    • 1970-01-01
    • 2019-06-13
    • 2011-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-15
    相关资源
    最近更新 更多