文件名称:go-cshared-examples:使用C共享库从其他语言调用Go函数
文件大小:19KB
文件格式:ZIP
更新时间:2024-02-22 22:12:56
nodejs ruby python java go
使用C共享库从其他语言调用Go函数 此存储库包含文章(medium.com)的源示例。 使用-buildmode=c-shared构建标记,编译器输出标准的共享对象二进制文件(.so),将Go函数公开为C风格的API。 这样,程序员就可以在此存储库中创建可以从其他语言(包括C,Python,Ruby,Node和Java)调用的Go库(请参见Lua的示例)。 围棋代码 首先,让我们编写Go代码。 假设我们已经编写了一个awesome Go库,希望将其提供给其他语言使用。 在将代码编译到共享库中之前,要遵循四个要求: 该软件包必须是主软件包。 编译器会将软件包及其所有依赖项构建到单个共享库二进制文件中。 源必须导入伪包“ C”。 使用// export注释来注释您希望其他语言可访问的功能。 必须声明一个空的main函数。 以下Go源代码导出了四个函数Add , Cosine , Sort和Log 。 诚然,很棒的库没有那么令人印象深刻。 但是,其多样的功能签名将帮助我们探索类型映射的含义。 档案 package main import "C" import ( "fmt"
【文件预览】:
go-cshared-examples-master
----.gitignore(46B)
----client.js(1KB)
----Client.java(2KB)
----client2.c(2KB)
----client.lua(1KB)
----LICENSE(1KB)
----client.cs(2KB)
----client1.c(766B)
----client.py(1KB)
----README.md(28KB)
----awesome.go(550B)
----client.dart(3KB)
----client.jl(971B)
----client.rb(1KB)
----client-cffi.py(971B)