为了账号安全,请及时绑定邮箱和手机立即绑定

服务器上的简单 go 二进制部署不起作用

服务器上的简单 go 二进制部署不起作用

Go
守候你守候我 2023-06-12 19:12:43
我已经在我的 manjaro linux 上使用 go 版本“go1.11.5 linux/amd64”配置了它。以下程序构建为二进制文件,该二进制文件直接在我的 go 文件夹和我的主文件夹中运行。package mainimport "fmt"func main() {    fmt.Printf("hello, world\n")}一旦它在我的本地系统上运行,我决定使用 ftp 将这个二进制文件上传到远程 ubuntu 18.04 服务器。我已将二进制文件复制到服务器主文件夹中。chmod 755 使其可执行。chown 将用户更改为服务器的当前登录用户。在服务器上安装了 go 版本“go1.11 linux/amd64”。当我尝试执行二进制文件时,它给了我以下异常Segmentation fault让我知道我还需要分享什么来完成这项工作。我有另一个用杜松子酒和许多其他包构建的项目。我需要配置那个二进制文件以在同一台服务器上提供 api。因为那行不通,所以我决定使用这个死掉的简单二进制文件,但令我惊讶的是,这行不通。让我为本地和远程系统发布 go env。go env on local GOARCH="amd64"GOBIN=""GOCACHE="/home/najam/.cache/go-build"GOEXE=""GOFLAGS=""GOHOSTARCH="amd64"GOHOSTOS="linux"GOOS="linux"GOPATH="/home/najam/go"GOPROXY=""GORACE=""GOROOT="/usr/local/go"GOTMPDIR=""GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"GCCGO="gccgo"CC="gcc"CXX="g++"CGO_ENABLED="1"GOMOD=""CGO_CFLAGS="-g -O2"CGO_CPPFLAGS=""CGO_CXXFLAGS="-g -O2"CGO_FFLAGS="-g -O2"CGO_LDFLAGS="-g -O2"PKG_CONFIG="pkg-config"GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build859876677=/tmp/go-build -gno-record-gcc-switches"
查看完整描述

1 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

所以在 golang slack guys 的超级帮助下。我建立使用

CGO_ENABLED=0 GOOS=linux go build -o najamgo  hello.go

在我使用之前

go build hello.go

然后,因为我使用的是 ftp,所以我不得不将传输类型从“自动或 acscii”更改为“二进制”。然后从那时起,只需对上传的文件进行 chmod 即可使其可执行。

sudo chmod 755 hello

最后执行二进制文件。

./hello

及其工作。


查看完整回答
反对 回复 2023-06-12
  • 1 回答
  • 0 关注
  • 144 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信