使用 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.