Golang在Armbian系统中遇到的问题求助

Golang在Armbian系统中遇到的问题求助 我对Armbian和Go还非常陌生。我已经将go1.13.1.linux-arm64.tar.gz解压到我的/usr/local/go目录中。当我输入./all/bash时,出现错误提示“./make.bash: line 159: /usr/local/bin/go: cannot execute binary file: Exec format error”。

我运行的是来自https://www.armbian.com/orange-pi-pc/的Armbian Buster 4.19.y系统。

非常感谢任何帮助。我在这方面完全是个新手。

(我可能已经发现这是因为处理器是32位的,我需要使用其他版本的Go)。


更多关于Golang在Armbian系统中遇到的问题求助的实战教程也可以访问 https://www.itying.com/category-94-b0.html

3 回复

你能在终端上执行一些数据转储操作吗?

  1. $ uname -a
  2. $ cat /proc/cpuinfo

更多关于Golang在Armbian系统中遇到的问题求助的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


这是 Linux 系统,采用 32 位 armv7 处理器。如果您正在 Armbian 系统上开发 Go 程序,可以尝试安装此版本的 Go(请选择 linux-armv6l):

  1. https://dl.google.com/go/go1.13.1.linux-armv6l.tar.gz

安装步骤完全相同。请尝试编译一个 hello world 应用程序并在该设备上运行,然后将测试结果反馈到这里。


如果上述方法仍然失败,您唯一的备选方案是从其他受支持的平台进行交叉编译(例如从 linux-amd64linux/arm),然后仅将该单板计算机作为执行设备使用。

交叉编译生成的可执行文件无需在目标平台安装 Go 即可运行;其本身即可在目标机器上直接执行。

你遇到的问题确实是由于处理器架构不匹配导致的。Armbian Buster 4.19.y系统运行在32位ARM处理器上,而你下载的go1.13.1.linux-arm64.tar.gz是64位ARM架构的二进制文件。

你需要下载32位ARM版本的Go。对于你的Orange Pi PC(基于ARMv7架构),应该使用go1.13.1.linux-armv6l.tar.gz

以下是正确的安装步骤:

  1. 首先清理当前安装:
sudo rm -rf /usr/local/go
  1. 下载正确的32位ARM版本:
wget https://dl.google.com/go/go1.13.1.linux-armv6l.tar.gz
  1. 解压到正确位置:
sudo tar -C /usr/local -xzf go1.13.1.linux-armv6l.tar.gz
  1. 设置环境变量,将以下内容添加到~/.bashrc~/.profile中:
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
  1. 重新加载配置:
source ~/.bashrc
  1. 验证安装:
go version

如果go version命令正确显示版本信息,说明安装成功。你可以创建一个简单的测试程序验证:

package main

import "fmt"

func main() {
    fmt.Println("Go is working on Armbian!")
}

保存为test.go并运行:

go run test.go

如果输出"Go is working on Armbian!",说明Go语言环境已正确配置。

回到顶部