当前位置: 首页 > 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
    

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

http://www.dtcms.com/a/131209.html

相关文章:

  • 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 属性
  • 高并发短信系统设计:基于SharingJDBC的分库分表、大数据同步与实时计算方案
  • autogenstudio设置
  • Redisson的红锁,分段锁,公平锁,联锁。。。。。。
  • 信息安全管理与评估2021年国赛正式卷答案截图以及十套国赛卷
  • 高负载WEB服务器--Tomcat
  • 深入理解 v-show 指令及其使用方法
  • 【本地图床搭建】宝塔+Docker+MinIO+PicGo+cpolar:打造本地化“黑科技”图床方案
  • github进阶使用教程
  • .net执行脚本:通过字符串的形式来执行按钮的点击操作
  • 【Python实时数据处理】流式计算与异步编程实战