Windows Go环境-to.exe


提示

文章目录


一、Go-语言环境基础配置

访问Go官方:https://go.dev

下载 .msi 安装包(如 go1.23.1.windows-amd64.msi)

双击运行,完成后打开命令提示符(CMD)或 PowerShell

python 复制代码
go version


设置 GOPROXY 使用国内镜像

python 复制代码
# 设置 GOPROXY 使用国内镜像
go env -w GOPROXY=https://goproxy.cn,direct
# 或者使用七牛云的代理
go env -w GOPROXY=https://goproxy.io,direct

二、Go-C 编译器

2.1 C编译安装

项目有cgo依赖(部分功能需调用C库),必须安装,

为CGO提供C语言编译能力,必须与Go架构匹配(64位Go配64位GCC)。

Windows: 安装
MinGW-w64 官网https://www.mingw-w64.org/

或更集成的 MSYS2官网https://www.msys2.org/

MSYS2安装如下:


打开msys2.exe安装

python 复制代码
# MSYS2 的包管理器 pacman 来安装一个特定版本的 GCC 编译器
# 执行安装
$ pacman -S mingw-w64-ucrt-x86_64-gcc

验证

python 复制代码
gcc --version

安装项目C库

在MSYS2 UCRT64终端执行,标准库(如LAME):

python 复制代码
 pacman -S mingw-w64-ucrt-x86_64-lame

2.2 CGO与系统依赖简介

当你的Go项目需要调用成熟的C语言库(如音频处理的LAME、图像处理的OpenCV等)时,就会用到CGO。这是Go与原生系统生态桥梁,也是配置复杂性的主要来源

CGO是Go语言提供的一个工具,它允许在Go源代码中直接编写C代码或调用外部的C语言动态/静态库。命令 cgo 在编译前会处理这些特殊部分,生成可供Go编译器理解的中间文件。

三、Go-配置编译

开 Windows PowerShell,导航到你的项目目录,一次性执行以下命令

python 复制代码
# 1. 启用CGO
$env:CGO_ENABLED = "1"
# 2. 指定C编译器路径
$env:CC = "E:\msys64\ucrt64\bin\gcc.exe"
# 3. 将编译器路径临时添加到系统PATH,确保找到所有依赖DLL
$env:Path = "E:\msys64\ucrt64\bin;" + $env:Path
# 4 这一步会移除旧依赖,添加新依赖。更新 go.mod 和 go.sum 文件
go mod tidy
# 5. 编译项目
go build -o xiangmu.exe

go mod tidy 是 Go 模块系统的"管家",它确保你的项目依赖声明(go.mod) 与项目代码实际使用情况以及依赖的校验和(go.sum) 三者保持绝对同步。在修改代码或初始拉取项目后,先运行 go mod tidy 是一个必须养成的好习惯.

python 复制代码
# 方法1:使用 go env 命令(最推荐,查看Go工具链使用的值)
go env CC
go env CGO_ENABLED

# 方法2:查看操作系统的环境变量
echo $env:CC
echo $env:CGO_ENABLED
相关推荐
Scott9999HH3 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
码智社4 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
AI云海4 小时前
python 列表、元组、集合和字典
开发语言·python
萧瑟余晖5 小时前
JDK 26 新特性详解
java·开发语言
马优晨6 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
人邮异步社区8 小时前
怎么把C语言学到精通?
c语言·开发语言
心平气和量大福大8 小时前
C#-WPF-控件-TextBox 数据绑定
开发语言·c#·wpf
ttwuai8 小时前
Cursor 生成 CRUD 后,Go 后台接口别只测 200:JWT、RBAC 和 tenant_id 怎么验
开发语言·后端·golang
এ慕ོ冬℘゜9 小时前
前端基础:什么是时间戳?JS获取时间戳三种方法与实战用途
开发语言·前端·javascript
执明wa9 小时前
LayoutInflater详解: XML是如何变成View的?
android·xml·开发语言·android studio