news 2026/4/17 0:21:05

Go语言怎么编译Linux程序_Go语言编译Linux可执行文件教程【避坑】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Go语言怎么编译Linux程序_Go语言编译Linux可执行文件教程【避坑】

在 macOS 或 Windows 上编译 Linux 可执行文件需显式设置 GOOS=linux 和 GOARCH,若启用 cgo 则需配置交叉编译工具链或禁用 cgo;推荐使用 Docker 构建以规避环境差异。Go 编译 Linux 可执行文件,直接设 GOOS 和 GOARCHGo 默认按当前系统编译,想在 macOS 或 Windows 上生成 Linux 程序,不能只靠 go build,必须显式指定目标平台。不设 GOOS=linux,编译出来的是你本地系统的二进制,扔到 Linux 上直接报 cannot execute binary file: Exec format error。实操建议:立即学习“go语言免费学习笔记(深入)”;在终端里先临时设置环境变量:GOOS=linux GOARCH=amd64 go build -o myapp main.go交叉编译 ARM64 Linux(比如跑在树莓派或云服务器上):用 GOARCH=arm64,不是 arm 或 aarch64如果项目用了 cgo(比如调了 SQLite、OpenSSL),默认会失败——Linux 的 C 标准库头文件和链接器在 macOS/Windows 上不存在cgo 开启时编译 Linux 程序,得配好交叉编译工具链只要代码里有 #import "C" 或依赖含 cgo 的包(如 database/sql 配 _ "github.com/mattn/go-sqlite3"),GOOS=linux 就不够用了。这时候 Go 会尝试调用 gcc,但宿主机的 gcc 不认识 sys/stat.h 这类 Linux 头文件。实操建议:立即学习“go语言免费学习笔记(深入)”;禁用 cgo 是最简方案:CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o myapp main.go启用 cgo 时,macOS 上需装 x86_64-linux-gnu-gcc(用 Homebrew:brew install x86_64-linux-gnu-binutils x86_64-linux-gnu-gcc),再设 CC_x86_64_linux_gnu=x86_64-linux-gnu-gccWindows 用户基本别硬刚 cgo 交叉编译,Docker 更稳:docker run --rm -v $(pwd):/src -w /src golang:1.22-alpine go build -o myapp main.goLinux 上运行失败?检查 libc 版本和静态链接即使成功编译出 Linux 二进制,放到旧版 CentOS 7 或 Alpine 容器里可能报 version `GLIBC_2.34' not found。这是因为 Go 默认动态链接宿主机的 libc(如果你在 Ubuntu 22.04 编译,它用的是较新 glibc)。 Mokker AI AI产品图添加背景

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 0:20:16

2025届必备的六大AI论文神器推荐

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 被视为国内极具权威性的学术资源平台的知网,当下和崭露头角的新兴技术AIGC相结合…

作者头像 李华
网站建设 2026/4/17 0:13:15

深入TI C2000 EPWM影子寄存器:为什么以及何时使用它?

深入解析TI C2000 EPWM影子寄存器:关键机制与实战应用 在电力电子和电机控制领域,精确的PWM信号生成是系统稳定运行的基础。德州仪器(TI)的C2000系列微控制器凭借其增强型PWM(EPWM)模块,为工程师提供了强大的波形控制能力。然而,许…

作者头像 李华
网站建设 2026/4/17 0:12:10

4. 网络编程

0. 大纲: 网络编程三要素: IP地址、端口、协议、3次握手、4次挥手; Socket套接字与TCP开发流程:服务器端程序流程、客户端程序流程; TCP编程:服务器端程序、客户端程序编写; 1. 网络编程三要素&…

作者头像 李华
网站建设 2026/4/17 0:09:23

从K210到舵机:一个电赛声源定位系统的实战开发笔记

1. 从零搭建声源定位系统的硬件选型 第一次接触电赛声源定位题目时,我和队友们花了整整三天时间在硬件方案论证上。市面上常见的方案主要有三种:STM32独立麦克风模块、K210官方圆形麦克风阵列、K210自制线性阵列。我们最终选择了第三种方案,这…

作者头像 李华
网站建设 2026/4/17 0:08:48

【JVM深度解析】第06篇:G1垃圾收集器深度解析

摘要 G1(Garbage-First)垃圾收集器是 JDK 9 的默认 GC,通过将堆划分为等大小的 Region 区域,彻底摒弃了传统的物理连续分代结构,实现了可预测的停顿时间模型。本文深入解析 G1 的核心设计:Region 分区机制…

作者头像 李华
网站建设 2026/4/17 0:06:53

大模型微调技术精要:小白程序员必备,助你秋招收藏必备!

本文从大模型微调技术概要出发,结合秋招面试高频问题,详细解析了LoRA微调原理、Prompt微调技术以及参数高效微调PEFT和指令微调SFT等核心知识点。文章还涵盖了微调技术选型、Loss计算、数据集收集、避免灾难性遗忘等实用技巧,并介绍了fp16和b…

作者头像 李华