使用 Go 为 iPhone 应用程序编写库

Posted

技术标签:

【中文标题】使用 Go 为 iPhone 应用程序编写库【英文标题】:Using Go to write a library for an iPhone app 【发布时间】:2010-02-13 22:05:21 【问题描述】:

我正在考虑使用 Go 作为替代 C/Objective-C 的低级高性能语言来实现 iPhone 应用程序库。任何一个 Go 编译器都可以生成一个库,该库可以通过 Go 运行时等链接到本机 iPhone 应用程序中吗?有 Go 的 ARM 端口还是 gccgo/gcc 支持这个?我想,由于 gccgo 使用 gcc 作为后端,而 Xcode 使用 gcc 来编译 iPhone 应用程序,这很有可能是可能的。如果可能,我将如何在 Xcode 项目中进行设置?

有没有人尝试过或看到过它的讨论? (当我在 Google 上搜索“编译 go 代码 iphone”时,“go”部分完全没有使用,我只得到有关 iPhone 开发的信息。)

【问题讨论】:

【参考方案1】:

Go 目前不支持 iphone 平台,但它支持 ARM 处理器。不过,在邮件列表上并没有太多关于这个的讨论。

【讨论】:

【参考方案2】:

即使可能,我也怀疑 Go 比 C 或 Objective C 慢得多。大多数独立基准测试似乎表明使用当前开发版本时性能不佳。这些microbenchmarks against C suggest Go 比 C 慢 2 到 150 倍。它甚至比 Java 和 C# Mono 还要慢。所以我认为没有理由将 Go 称为高性能替代方案。

虽然这取决于您的应用程序,但我怀疑利用 GPU api 是解决大多数性能问题的最佳选择。

【讨论】:

所以 Go 的目标是替换服务器上的 C#/Java?是这样的想法吗?我猜 C 会做我需要的,但我可以使用字符串、哈希表等。 查看代码大小列 150X 但 624 (Go) 与 2579 (C) 也很有趣。您的开发速度更快,并且随着您的应用程序成功,编译器也可以得到改进。 >> Go 比 C 慢 2 到 150 倍 shootout.alioth.debian.org/u32/… >> 这些微基准 【参考方案3】:

至少要看看 Lua。它速度很快,是我喜欢使用的一种语言。 iPhone Wax 使用 lua。

【讨论】:

我这周刚看了参考手册!我实际实现的是一种脚本语言,Lua C 源代码可能很有用,尽管用另一种脚本语言实现脚本语言可能是个坏主意。 (我的脚本语言原型在 Haskell 中,我正在寻找合适的替代品。我可能不得不使用 C。 我强烈建议不要使用 Wax。从 2015 年 2 月起,所有新提交的应用程序都需要 64 位块。 iPhone Wax 不支持 64 位,添加它需要在两个方向上修复 lua 和 objc-c 之间的参数编组 - 这在 32 位中已经存在错误(无符号整数无法正常工作)。 【参考方案4】:

Go Mobile 项目现在对 iosandroid 移动开发有了一些支持。有关您的应用程序的详细信息,请参阅Building for IOS 上的 wiki 部分。

【讨论】:

以上是关于使用 Go 为 iPhone 应用程序编写库的主要内容,如果未能解决你的问题,请参考以下文章

2023-02-18:ffmpeg是c编写的音视频编解码库,请问用go语言如何调用?例子是03输出版本号。

Go 每日一库之 jsonrpc:来自标准库

深入浅出Go语言的库源码文件

C# 调用 Go 语言0x1 Hello Golang

跨 iPhone 和 Android 应用程序版本使用 Java 库

iPhone上的VFP单元矩阵乘法问题