在 Windows 上将 Go 项目打包成 Linux 可执行程序

打开命令提示符(cmd)或 PowerShell。

$env:GOOS = "linux"
$env:GOARCH = "amd64"

cd C:\workspace\golang\gin_alpha\cmd\
dir
go build -o myapp-linux

 

然后将生成的Linux可执行文件上传至服务器

 

授权当前用户执行权限

chmod +x myapp-linux

 

后台运行该程序

nohup ./myapp-linux &

 

 

build:
	@echo "Building Linux binary program..."
	CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" -o <应用名> cmd/main.go

在Goland中建一个Makefile文件

 

参数 说明
CGO_ENABLED=0 禁用 CGO,生成纯静态链接的二进制文件,避免依赖系统的 C 库,方便跨平台编译
GOOS=linux 目标操作系统是 Linux
GOARCH=amd64 目标架构是 AMD64(即 64 位 x86 架构)
go build Go 的编译命令
-ldflags="-w -s" 传递给链接器的参数:
-w 去掉符号表,减小二进制文件体积
-s 去掉调试信息,同样是减小二进制文件体积
-o app 指定输出的二进制文件名为 app
cmd/main.go 指定要编译的入口文件
posted @ 2025-03-20 23:18  Ashe|||^_^  阅读(776)  评论(0)    收藏  举报