Go语言跨平台打包

2023年 8月 23日 88.8k 0

使用 windows 电脑,打包二进制文件到 linux 服务器运行,先说一下在网上看到的

网上的都是直接

set CGO_ENABLED=0
set GOOS=linux
set GOARCH=amd64
go build

据说这样写是临时改一下 env 的配置,方便打包,看他们的效果图也是没有毛病,打包出了不带.exe 后缀的二进制文件,不知为何我用这种方法打包总是打包 windows 平台使用的带.exe 后缀的文件

解决办法就是用 go env -w 命令永久修改,改完打包后再改回去
linux 运行环境不是 arm 不用更改第三条

go env -w CGO_ENABLED=0
go env -w GOOS=linux
go env -w GOARCH=arm64

原:方便我个人复制改回去...

go env -w CGO_ENABLED=1
go env -w GOOS=windows
go env -w GOARCH=amd64

GOARCH 在哪个 linux 机器运行,根据 linux 架构来改,我的是 arm64 所以改 arm64
要发布的包使用以下命令打包,去除乱七八糟的体积更小

go build -ldflags "-w -s" main.go,加上ldflags参数,-s去掉了符号表信息,-w去掉了调试信息,之后不能使用gdb调试

在 linux 终端运行时 cd 到文件所在目录直接运行即可,输入以下命令可以持续在后台跑
参考linux 后台执行命令:&和 nohup

举例
nohup ./main >main.log 2>&1 &
nohup 执行命令 >输出文件 2>&1解析 持续运行

话说 frp 真好使,这个 web 服务搭在前面买的树莓派里,直接解析域名然后添加配置就好,相当于内网下跑端口都不用另外放行,在外访问直接跟网站统一使用 80 端口???

❀❀❀❀❀❀ 完结散花 ❀❀❀❀❀❀

Written ❤️ sywdebug.

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论