商城首页欢迎来到中国正版软件门户

您的位置:首页 >怎样在Ubuntu上交叉编译Golang

怎样在Ubuntu上交叉编译Golang

  发布于2026-05-02 阅读(0)

扫一扫,手机访问

在Ubuntu上交叉编译Golang程序:一份实用指南

想在一台Ubuntu机器上,为Windows、macOS甚至ARM架构的Linux系统编译Go程序吗?交叉编译这个功能可以帮你实现,它让你无需在目标平台上安装Go环境,就能生成可运行的程序。下面这份指南,将带你一步步完成整个过程。

怎样在Ubuntu上交叉编译Golang

1. 安装Go

第一步,自然是确保你的Ubuntu系统已经安装了Go语言环境。如果还没安装,打开终端,执行下面这两条命令就能轻松搞定:

sudo apt update
sudo apt install golang-go

2. 设置交叉编译环境

Go语言的交叉编译非常简洁,核心就在于设置两个环境变量:GOOS(目标操作系统)和GOARCH(目标架构)。这里列举几个常见的组合,方便你直接取用:

  • Windows (64位): GOOS=windows GOARCH=amd64
  • Linux (ARM架构): GOOS=linux GOARCH=arm
  • macOS (Intel芯片): GOOS=darwin GOARCH=amd64
  • FreeBSD (64位): GOOS=freebsd GOARCH=amd64

3. 编译程序

环境变量准备好后,编译就是一条命令的事。假设你的Go项目就在当前目录,想要编译出一个Windows下的可执行文件,可以这样操作:

GOOS=windows GOARCH=amd64 go build -o myprogram.exe

同理,如果想编译出Linux ARM版本,命令则换成:

GOOS=linux GOARCH=arm go build -o myprogram

4. 验证编译结果

命令执行成功后,可执行文件就会出现在当前目录。如何确认它确实是我们想要的格式呢?使用file命令查看一下文件信息就清楚了:

file myprogram.exe  # 查看Windows可执行文件信息
file myprogram      # 查看Linux可执行文件信息

5. 运行程序

编译出来的程序,最终当然要在目标平台上运行。在Linux上运行Linux版本,命令很直接:

./myprogram

而Windows版本的可执行文件(例如myprogram.exe),则需要拷贝到Windows系统中,双击或在命令行中直接运行即可。

示例

光说不练假把式,我们用一个经典的“Hello, World!”程序来演示。假设你有这样一个hello.go文件:

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

现在,在Ubuntu上为Windows系统编译它:

GOOS=windows GOARCH=amd64 go build -o hello.exe hello.go

之后,把生成的hello.exe文件放到任何一台Windows电脑上,运行它就能看到问候语了。

注意事项

  1. 依赖库:务必检查你的程序是否依赖了某些特定平台的C库或系统功能,这可能会成为跨平台运行的障碍。
  2. 测试:交叉编译成功只是第一步,至关重要的一步是在真实的目标硬件和操作系统上进行充分测试,以确保功能与性能都符合预期。
  3. 交叉编译工具链:对于某些特殊的或嵌入式平台,Go内置的交叉编译可能不够,这时可能需要配置额外的外部工具链。

遵循以上步骤,在Ubuntu上为各种平台交叉编译Golang程序,其实是一件相当轻松高效的事情。

本文转载于:https://www.yisu.com/ask/86419684.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注