Golang go语言如何打包成linux上可以执行的文件

Golang go语言如何打包成linux上可以执行的文件,第1张

Golang go语言 在Windows上如何打包成linux上可以执行的文件

在Windows上的cmd命令中执行:
运行环境为arm机器系统为linux:

E:\ideaproject\goproject\src\hell>set GOARCH=arm64

E:\ideaproject\goproject\src\hell>set GOOS=linux

E:\ideaproject\goproject\src\hell>go build agent.go

运行在环境为其他机器系统为linux:

E:\ideaproject\goproject\src\hell>set GOARCH=amd64

E:\ideaproject\goproject\src\hell>set GOOS=linux

E:\ideaproject\goproject\src\hell>go build agent.go

如果执行报如下错:

E:\ideaproject\goproject\src\hell>go build agentServer.go
agentServer.go:5:2: no required module provides package github.com/fasthttp/websocket: go.mod file not found in current directory or any parent directory; see 'go help modules'
agentServer.go:6:2: no required module provides package github.com/valyala/fasthttp: go.mod file not found in current directory or any parent directory; see 'go help modules'
agentServer.go:7:2: no required module provides package github.com/yeqown/fasthttp-reverse-proxy: go.mod file not found in current directory or any parent directory; see 'go help modules'

则执行命令:

E:\ideaproject\goproject\src\hell>go mod init

再次执行报如下错:

E:\ideaproject\goproject\src\hell>go build agent.go
agent.go:5:2: no required module provides package github.com/fasthttp/websocket; to add it:
        go get github.com/fasthttp/websocket
agent.go:6:2: no required module provides package github.com/valyala/fasthttp; to add it:
        go get github.com/valyala/fasthttp
agent.go:7:2: no required module provides package github.com/yeqown/fasthttp-reverse-proxy; to add it:
        go get github.com/yeqown/fasthttp-reverse-proxy

则执行如下命令:

E:\ideaproject\goproject\src\hell>go get github.com/fasthttp/websocket
go get: module github.com/fasthttp/websocket: Get "https://proxy.golang.org/github.com/fasthttp/websocket/@v/list": dial tcp 172.217.27.145: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.

如果报以上错则执行以下命令:

E:\ideaproject\goproject\src\hell>go env -w GOPROXY=https://goproxy.cn,direct

再次执行下载包命令:

E:\ideaproject\goproject\src\hell>go get github.com/fasthttp/websocket
go: downloading github.com/fasthttp/websocket v1.4.3
go: downloading github.com/savsgio/gotils v0.0.0-20200608150037-a5f6f5aef16c
go: downloading github.com/valyala/fasthttp v1.14.0
go: downloading github.com/klauspost/compress v1.10.4
go: downloading github.com/andybalholm/brotli v1.0.0
go: downloading github.com/valyala/bytebufferpool v1.0.0
go get: added github.com/fasthttp/websocket v1.4.3
E:\ideaproject\goproject\src\hell>go get github.com/yeqown/fasthttp-reverse-proxy
go: downloading github.com/yeqown/fasthttp-reverse-proxy v0.0.0-20200930023507-ed73ac32bc64
go: downloading github.com/yeqown/log v1.0.3
go: downloading github.com/pkg/errors v0.9.1
go get: added github.com/yeqown/fasthttp-reverse-proxy v0.0.0-20200930023507-ed73ac32bc64

出现以上提示则包下载成功,重新生成linux上可执行文件:

E:\ideaproject\goproject\src\hell>set GOARCH=amd64

E:\ideaproject\goproject\src\hell>set GOOS=linux

E:\ideaproject\goproject\src\hell>go build agent.go

没有报错则生成成功。

然后拷贝新生成的文件到linux上,给授权:

greatwall@greatwall-os:~/soft/remoteAgent$ chmod 777 agent 

启动:

greatwall@greatwall-os:~/soft/remoteAgent$ nohup ./agent &
[1] 3524
greatwall@greatwall-os:~/soft/remoteAgent$ nohup: 忽略输入并把输出追加到'nohup.out'

查看启动是否成功:

greatwall@greatwall-os:~/soft/remoteAgent$ netstat -an | grep 8999
tcp        0      0 0.0.0.0:8999            0.0.0.0:*               LISTEN  

出现以上结果则恭喜你启动成功!
以上8999端口为程序配置的端口,所以查看配置端口就可以检查是否启动成功。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/995809.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存