猿问

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

我已经在我的 manjaro linux 上使用 go 版本“go1.11.5 linux/amd64”配置了它。以下程序构建为二进制文件,该二进制文件直接在我的 go 文件夹和我的主文件夹中运行。


package main


import "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"


守候你守候我
浏览 145回答 1
1回答

翻过高山走不出你

所以在 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及其工作。
随时随地看视频慕课网APP

相关分类

Go
我要回答