使用windows电脑,打包二进制文件到linux服务器运行,先说一下在网上看到的
网上的都是直接
set CGO_ENABLED=0
set GOOS=linux
set GOARCH=amd64
go build
据说这样写是临时改一下env的配置,方便打包,看他们的效果图也是没有毛病,打包出了不带.exe后缀的二进制文件,不知为何我用这种方法打包总是打包windows平台使用的带.exe后缀的文件
解决办法就是用go env -w命令永久修改,改完打包后再改回去
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端口🤣🤣🤣