下载go资源包
https://dl.google.com/go/go1.20.3.windows-amd64.zip
解压到相应的目录。设置path至解压目录的bin目录,如:
path d:\golan\....\bin
设置环境变量:
//目标为exe(不为dll)
E:\Soft\Net>set CGO_ENABLED=0
//目标平台的操作系统(darwin freebsd linux windows)
E:\Soft\Net>set GOOS=windows
//目标平台的架构是32位或64位(386 amd64 arm)
E:\Soft\Net>set GOARCH=amd64
然后即可使用go build 命令开始编译目标代码:
E:\Soft\Net>go build -trimpath -ldflags "-s -w" -buildvcs=false -o bin/targProgram.exe ./cmd/sourcefold
即可在bin目录下,输出targProgram.exe文件。
注意:
初次编译时,go会下载一些资源,但过程中可能会卡死。报以下错误:pkg\util\limit\reader.go:21:2: golang.org/x/[email protected]: Get "https://proxy.golang.org/golang.org/x/time/@v/v0.0.0-20220210224613-90d013bbcef8.zip": dial tcp 172.217.160.113:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
原因为,源ip地址被墙,无法下载资源。
解决方法(二选一):
1、上梯子。
2、将源转到国内,执行以下命令:go env -w GOPROXY=https://goproxy.cn
然后再执行编译,即可正常输出