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

【go】--编译

go build -o [编译完成的可执行文件] [需要编译的.go文件]

#例如
go build -o myapp main.go

#确保编译的结果和当前运行环境相同
#查看arch
uname -a

在 Linux 中查看和修改 GOOSGOARCH 环境变量:

1. 查看当前 Go 环境变量

# 查看所有Go相关的环境变量
go env

# 单独查看GOOS和GOARCH
go env GOOS GOARCH

2. 临时设置环境变量(仅对当前会话有效)

# 编译Windows 64位程序
GOOS=windows GOARCH=amd64 go build

# 编译Linux ARM程序
GOOS=linux GOARCH=arm64 go build

3. 永久修改环境变量

方法1:修改 ~/.bashrc 或 ~/.zshrc(推荐)

vim ~/.bashrc

在文件末尾添加:

export GOOS=linux
export GOARCH=amd64

然后使更改生效:

source ~/.bashrc

方法2:修改全局环境变量

sudo vim /etc/environment

添加:

GOOS=linux
GOARCH=amd64

4. 查看支持的OS/ARCH组合

go tool dist list

5. 常用组合示例

目标平台GOOSGOARCH
Windows 64位windowsamd64
Windows 32位windows386
Linux 64位linuxamd64
Linux ARMlinuxarm
Linux ARM64linuxarm64
macOS 64位darwinamd64
macOS ARMdarwinarm64

6. 注意事项

  1. 修改环境变量后,新打开的终端会话才会生效
  2. 交叉编译时需要CGO_ENABLED=0来禁用CGO:
    CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
    
  3. 可以使用-v参数查看详细编译过程:
    GOOS=windows GOARCH=amd64 go build -v
    

如果需要频繁切换不同平台的编译,建议使用临时变量设置方式,而不是永久修改环境变量。

相关文章:

  • Android基础教程 - 学习完成记录
  • UI基础(1)
  • 【双指针】专题:LeetCode 1089题解——复写零
  • 202527 | RabbitMQ-基础 | 队列 | Direct + Fanout + Topic 交换机 | 消息转换器
  • linux系统安装docker及Qdrant
  • LeetCode 解题思路 38(前 K 个高频元素、数据流的中位数)
  • centos7 yum安装mysql8.0详细步骤(图文教程)
  • java和c#的相似及区别基础对比
  • 如何实现语音智能客服(一)
  • Linux上位机开发实践(OpenCV算法硬件加速)
  • 探索R语言:在线学习资源汇总
  • UE5蓝图之间的通信------接口
  • 安装VS Code 服务器运行版本
  • 第二十四:查看当前 端口号是否被占用
  • 开源 2D 横版跳跃游戏 SuperTux
  • 【PyQt】俄罗斯方块的小程序开发
  • Django 使用 Celery 完成异步任务或定时任务
  • 【Linux】进程创建、进程终止、进程等待
  • Lua 中的 table 类型详解
  • 深入解析 HTML 中 `<script>` 标签的 async 和 defer 属性
  • 紧盯大V、网红带货肉制品,整治制售假劣肉制品专项行动开展
  • 观察|印巴交火开始升级,是否会升级为第四次印巴战争?
  • 国铁集团:铁路五一假期运输收官,多项运输指标创历史新高
  • 秦洪看盘|涌现新逻辑,A股放量回升
  • 女租客欠租后失联,房东开门后无处下脚:40平公寓变垃圾场
  • 上海畅通“外转内”,外贸优品成“香饽饽”