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

时间:2010-02-12 20:09:13

标签: shared-libraries go

我可以将共享对象与Go一起使用吗?

1 个答案:

答案 0 :(得分:5)

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

  

Do 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