当前位置: 首页 > news >正文

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产品图添加背景

http://www.jsqmd.com/news/652725/

相关文章:

  • 如何用Avidemux在5分钟内完成专业级视频剪辑的终极方案
  • 【生成式AI版权合规红宝书】:2023-2024全球监管动态+7大高危场景避坑清单(含中国网信办、欧盟AI Act、美国NIST三重权威解读)
  • 图像预处理:中值滤波与均值滤波的区别及应用
  • 2026年4月火锅调料行业深度解析:5家实力工厂服务与采购策略全指南 - 2026年企业推荐榜
  • 2026年四月过半,发生了哪些科技大事
  • 告别C API:用MySQL Connector/C++重构你的C++数据库操作(附完整CMake项目配置)
  • ESP32串口打印全是乱码?别慌,检查这个晶振配置(ESP-IDF V5.x实测)
  • 【JVM深度解析】第04篇:垃圾回收算法与实现原理
  • 云原生微服务架构
  • 2026年北京宣传片拍摄公司电话查询推荐:专业团队信息汇总 - 品牌推荐
  • DLSS Swapper:告别手动烦恼,智能管理你的游戏DLSS文件
  • Llama-Factory实战:如何用WebUI微调Llama 3,并导出量化模型部署到本地?
  • GPT-6低延迟部署关键策略
  • Windows Btrfs驱动深度解析:跨平台文件系统解决方案的技术实现
  • STM32CubeMX生成MDK工程后,你的第一个LL库程序:用SysTick实现精准延时(附避坑点)
  • 生成式AI错误响应治理实战(生产环境97.3%错误5秒内降级)
  • 2026年西安私立青少年牙齿矫正口腔医院电话查询推荐:联系方式与特色解析 - 品牌推荐
  • 别再傻等索引了!手把手教你优化Android Studio导入AOSP源码的iml文件,速度提升10倍
  • Qt QThread安全退出实践:避免崩溃的三种策略
  • FPGA开发必备:PLL/ROM/RAM/FIFO四大IP核实战配置指南(Vivado2023版)
  • Kimi Chat Completion API 的应用与使用
  • 深入ZYNQ芯片内部:图解SGMII PMA IP如何借用Serdes GT资源实现1G以太网(以XC7Z020为例)
  • Zotero Style:学术文献管理界面的视觉增强与数据可视化解决方案
  • 深入TI C2000 EPWM影子寄存器:为什么以及何时使用它?
  • 面试官:聊聊Java线程池的核心原理!
  • Unlock Music:一站式解决音乐格式加密难题的浏览器工具
  • 2026年西安私立青少年牙齿矫正口腔医院电话查询推荐:详细联系与特色解析 - 品牌推荐
  • 多模态KV Cache的PagedAttention适配改造
  • 万象更新(二)VTK 坐标轴实战:从基础显示到交互式场景导航
  • 云原生网络架构