gpt4 book ai didi

go - 如何在 Go 中创建可嵌入的 C-API 库?

转载 作者:数据小太阳 更新时间:2023-10-29 03:28:33 25 4
gpt4 key购买 nike

我打算编写一个跨平台应用程序,它的大部分功能在所有平台(Linux、OS X、Windows、iOS、Android)之间共享。这些主要是辅助函数(计算、内部列表、网络等),所以我认为将这些函数放在一个库中会很方便,我可以为每个平台编译,同时仍然能够为每个平台单独创建自定义 UI。

我提到的这些平台上的主要语言是C、Objective-C、C# 和 Java。所有这些语言都支持直接或通过内部包装器从库中调用 C-API 函数。由于我不想用 C/C++ 编写 80% 的应用程序代码,因此我搜索并找到了 Go

cgo似乎是我的问题的解决方案。
我目前的想法是用 Go 编写核心库,然后为每个平台编译它,但是,调用 go build 根本不会创建任何东西。
导入“C”
我已经声明了一个func 并在之前添加了//export 语句。

我阅读了有关 gccgo 的内容,但人们一直指出它已经过时,不应使用。

也许任何人都可以指出我的想法中的缺陷或帮助我将这个库文件放在一起。提前致谢。

最佳答案

如果您的目标是构建一个可以链接到任意 C、Objective-C 或 Java 程序的库,那么您不适合当前发布的标准工具链。有计划在未来改变这一点,但目前 Go 运行时不能嵌入到其他应用程序中。

虽然 cgo 将允许您导出要从 C 调用的函数,但这仅在您从 Go 调用的 C 代码需要回调到 Go 的情况下才真正有用。

关于go - 如何在 Go 中创建可嵌入的 C-API 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30580111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com