如何在安卓设备上运行我的Go代码?

10

我该如何在安卓上运行这段Go代码?(在Fedora 15中它可以工作)。

package main
import "fmt"

func main() {
    fmt.Println("Hello, 世界")
}
2个回答

11

您需要为ARM编译它,幸运的是,使用Go的编译器非常容易:

$ 5g main.go && 5l main.5

执行文件(5.out)可在Android上运行。只需将其复制到那里并通过shell运行即可。更多信息在此处


Android上有哪些库可用?Go标准API是否被覆盖? - lhk
2
是的,Go静态链接库,这意味着您甚至可以在Go程序中使用第三方库。一切都与您的可执行二进制文件捆绑在一起。我不确定移动环境可能会发生什么奇怪的情况,但通常一切都应该正常工作。 - Mostafa
从未尝试过,但我认为不行。Android不支持GTK。而GoGL开发者目前仅声明支持Linux。 - Mostafa

3

从Go 1.0开始,编译器不再为不同的目标架构提供单独的编译器可执行文件,而是使用单个编译器可执行文件。因此,与Go 1.0不同,为ARM编译的过程略有不同:

CGO_ENABLED=0
GOOS=linux
GOARCH=arm
go build main.go

需要设置环境变量GOOS和GOARCH以匹配Android环境,该环境是Linux操作系统和ARM硬件架构。然后您可以像编译其他平台一样使用go build(然后根据设置的变量执行操作)。


为什么有这么多参数?Go不能使用简单的makepython一样的运行编译/构建方法吗? - user285594
Cgo = false,SO = Linux(Android 使用 Linux),架构 = ARM(Android 的硬件)。 - nocrox
禁用CGO是必要的吗? - Kissaki
由于您的答案非常简短,但仍然正确,我用实际的句子和背景信息扩展了它。因此,它实际上是一种阅读乐趣,并且人们可以从中学习。希望您没意见。 - Kissaki
我的Go安装出现问题: go build runtime: exec: "/usr/lib/go/pkg/tool/linux_amd64/5g": stat /usr/lib/go/pkg/tool/linux_amd64/5g: no such file or directory - Sebastián Grignoli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接