您的当前位置:首页>全部文章>文章详情

【Go】Golang打包go项目部署到linux服务器正确方法

CrazyPanda发表于:2024-08-06 15:49:19浏览:285次TAG: #Golang

网上方法

我们可以在终端中输入以下代码:

set CGO_ENABLED=0
set GOOS=linux
set GOARCH=amd64
go build -o main-linux main.go

然后就会生成main-linux的二进制可执行文件,然后我们就可以将main-linux放到服务器中的任一目录中,然后我们就可以执行以下命令运行。

> chmod 777 main-linux
> ./main-linux

这是我们在网上可以搜索到的方法,但是我相信很多人通过这个方法尝试后发现,它并不能运行。我相信大家应该遇到过这种情况。

正确方法

我们在终端以下代码查看:

go env

我们可以看到以下内容:

set GO111MODULE=on
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\86184\AppData\Local\go-build
set GOENV=C:\Users\86184\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=C:\Users\86184\go\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\Users\86184\go;E:\go\go;E:\go\go\lib
set GOPRIVATE=
set GOPROXY=https://mirrors.aliyun.com/goproxy/,direct
set GOROOT=E:\go\go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=E:\go\go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.18.2
set GCCGO=gccgo
set GOAMD64=v1
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=D:\桌面\后台\awe\go.mod
set GOWORK=
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\86184\AppData\Local\Temp\go-build3107814947=/tmp/go-build -gno-record-gcc-switches

我们可以看到,GOOS依然是windows,所以我们早linux运行windows的执行文件,自然无法正常执行。下面是正确的方法:

$env:GOOS="linux"
go build -o main-linux main.go

然后在服务器端执行

chmod 777 main-linux
./main-linux

如果想让其在后台运行可以执行:

setsid ./main-linux

总结 

到此这篇关于Golang打包go项目部署到linux服务器的文章就介绍到这了,更多相关Golang打包部署linux服务器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

原文地址:https://www.jb51.net/jiaoben/302059vnf.htm

猜你喜欢

【Go】Go语言起源与应用
目录一.Go语言来源二.Go语言应用一.Go语言来源    Go语言,又称Golang,是Google公司于2009年11月正式对外公开的一门编程语言。它是一门静态强类型、编译型的语言,其语法与C相近,但在功能上有所改进和增加,如内存安全、垃圾回收、结构形态及CSP-style并发计算等。    Go语言的主要目标是兼具Python等动态语言的开发速度和C/C++等编译型语言的性能与安全性。它不仅可以让程序员访问底层操作系统,还提供了强大的网络编程和并发编
发表于:2024-02-24 浏览:351 TAG:
【Go】go语言的特点和优势
Go语言是一种开源的、编译型的、并发型的编程语言,由谷歌于2009年推出。Go语言的设计目标是简单、高效、可靠,并能够轻松地构建大型分布式系统。优势简单易学: Go语言的语法非常简单,学习曲线平缓,即使是初学者也能快速掌握。高效: Go语言的编译速度非常快,并且生成的二进制文件也非常小,这使得它非常适合构建高性能的应用程序。并发: Go语言内置了对并发编程的支持,使得开发人员可以轻松地编写并发程序。可靠: Go语言提供了许多内置的错误处理机制,这使得它非常适合构建可靠的应用程序。跨平台: Go语
发表于:2024-07-01 浏览:297 TAG:
【Go】Golang标准库介绍(四)
1. Net库 (网络库,支持 Socket、HTTP、邮件、RPC、SMTP 等)在 Go 语言的标准库中,net 包提供了对网络操作的支持,包括基本的网络协议、Socket 编程、HTTP 客户端和服务器等。net 包包含多个子包,其中一些主要的子包包括 net/http、net/url、net/rpc 等。重要的子包和功能net/http: 提供了用于构建 HTTP 客户端和服务器的功能,包括处理请求和响应、创建路由、设置中间件等。 net/url:&nbs
发表于:2024-03-04 浏览:289 TAG:
【Go】gotk3安装配置
转载:https://www.jianshu.com/p/44cf93054ca7gotk3是gtk+3的一个Go绑定,在windows下安装起来比较麻烦。本教程主要讲解gotk3的安装配置。测试环境:GoLand + msys2 + Win10安装MSYS2去官网https://www.msys2.org/下载msys2安装包,本教程使用的是64位版本。安装时请确保安装目录不包含空格,可以使用默认路径,我使用的目录为D:\msys64。    安装完成后修改pacman配置
发表于:2024-06-07 浏览:360 TAG:
【Go】Golang标准库介绍(一)
随着计算机科学的迅猛发展,编程语言也在不断涌现。在这个多样化的编程语言生态系统中,Go语言凭借其简洁、高效、并发支持等特性逐渐崭露头角。作为一门开源的静态编程语言,Go语言自带了丰富的标准库,为开发者提供了强大的工具和功能。本文将深入介绍Go语言几种标准库,帮助读者更好地了解和利用这些库,提高编程效率。1. bufio(带缓冲的 I/O 操作)在Go语言的标准库中,bufio(buffered I/O)库提供了带缓冲区的输入输出功能,用于提高读写效率。它通过在输入输出流上添加缓冲区,减少了频繁的
发表于:2024-03-02 浏览:299 TAG:
【Go】Golang打包go项目部署到linux服务器正确方法
网上方法正确方法总结 网上方法我们可以在终端中输入以下代码:set CGO_ENABLED=0 set GOOS=linux set GOARCH=amd64 go build -o main-linux main.go然后就会生成main-linux的二进制可执行文件,然后我们就可以将main-linux放到服务器中的任一目录中,然后我们就可以执行以下命令运行。> chmod 777&nb
发表于:2024-08-06 浏览:286 TAG: #Golang
【Go】golang能写桌面吗
本教程操作环境:windows10系统、go1.20.1版本、Dell G3电脑。Golang是一种编程语言,被广泛用于开发后端应用程序和网络服务。它以其强大的并发性能和简洁的语法而闻名,但是很多人问:Golang能否用于桌面应用程序的开发呢?答案是肯定的,Golang是完全可以用于桌面应用程序开发的。虽然它最初被设计用于构建服务器端应用程序,但由于其出色的性能和跨平台的特性,它也被广泛应用于桌面应用程序的开发。Golang提供了一组强大的标准库,其中包含用于图形界面和用户界面 (GUI) 开发
发表于:2024-06-06 浏览:295 TAG:
【Go】Golang标准库介绍(三)
1. image库 (常见图形格式的访问及生成)在 Go 语言的标准库中,image 包提供了对图像的基本操作和处理功能。这个包定义了 Image 接口和一些基本的图像类型,同时也包含了一些实现了该接口的具体类型,如 image.RGBA 和 image.Gray。关键概念和类型:1. Image 接口: 定义了图像的基本操作,包括获取像素值、设置像素值等。 2. RGBA 类型: 表示一个带有红、绿、蓝和透明度通道的图像。 3.&nb
发表于:2024-03-04 浏览:371 TAG:
【Go】Go语言常用命令详解(二)
前言接着上一篇继续介绍Go语言的常用命令常用命令以下是一些常用的Go命令,这些命令可以帮助您在Go开发中进行编译、测试、运行和管理依赖项等任务。命令描述go build编译Go程序包及其依赖项。go test运行包的测试。go run编译并运行Go程序。go clean删除编译生成的对象文件和缓存文件。go bug启动一个用于报告bug的工具。go doc显示有关包或符号的文档。go env打印有关Go环境的信息。go fix更新包以使用新的API。go fmt使用gofmt重新格式化Go包的源
发表于:2024-03-07 浏览:346 TAG:
【Go】常用的6款Go语言Web框架
前言由于工作需要,这些年来也接触了不少的开发框架,Golang的开发框架比较多,不过基本都是Web”框架”为主。这里稍微打了个引号,因为大部分”框架”从设计和功能定位上来讲,充其量都只能算是一个组件,需要项目使用的话得自己四处再去找找其他的组件,或者自己造轮子。如果用于Web开发,这些”框架”的Web开发能力均已完备,无太大差别,且均是自标准库net/http.Server的二次封装。由于框架众多,这里笔者只选择了几个曾做过技术选型评估、较为熟悉,且目前比较流行和典型的Golang”框架”,从适
发表于:2024-02-26 浏览:339 TAG: