linux环境下golang怎么编译exe
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux环境下golang怎么编译exe相关的知识,希望对你有一定的参考价值。
参考技术A Linux 是不需要安装的,直接用 chmod -x 文件名 将它的属性修改为可运行,然后就可以通过命令行执行它了,后缀名你改为 .sh ,这是 shell 默认支持的文件类型本回答被提问者采纳Golang开发环境搭建
阅读目录
Windows下搭建Go开发环境 - 安装和配置 SDK
SDK就是软件开发工具包
Go官网下载地址:https://golang.org/dl/
Go官方镜像站(推荐):https://golang.google.cn/dl/
此安装实例以 64位Win10系统安装 Go1.19.3可执行文件版本为例。
下一步,下一步安装,记住安装目录即可。
注意:Go语言1.14版本之后推荐使用go modules管理依赖,也不再需要把代码写在GOPATH目录下了。
检查
上一步安装过程执行完毕后,可以打开终端窗口,输入go version命令,查看安装的Go版本。
从Go 1.8版本开始,Go开发包在安装完成后会为GOPATH设置一个默认目录。
GOPROXY 非常重要
Go1.14版本之后,都推荐使用go mod模式来管理依赖环境了,也不再强制我们把代码必须写在GOPATH下面的src目录了,你可以在你电脑的任意位置编写go代码。
默认GoPROXY配置是:GOPROXY=https://proxy.golang.org,direct
,由于国内访问不到 https://proxy.golang.org
,所以我们需要换一个PROXY,这里推荐使用 https://goproxy.io
或 https://goproxy.cn
。
可以执行下面的命令修改GOPROXY:
go env -w GOPROXY=https://goproxy.cn,direct
查看本地go的环境配置信息:go env
C:\\Users\\ASUS>go env
set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\\Users\\ASUS\\AppData\\Local\\go-build
set GOENV=C:\\Users\\ASUS\\AppData\\Roaming\\go\\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=C:\\Users\\ASUS\\go\\pkg\\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\\Users\\ASUS\\go
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=D:\\Golang
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=D:\\Golang\\pkg\\tool\\windows_amd64
set GOVCS=
set GOVERSION=go1.19.3
set GCCGO=gccgo
set GOAMD64=v1
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=NUL
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 -Wl,--no-gc-sections -fmessage-length=0 -fdebug-prefix-map=C:\\Users\\ASUS\\AppData\\Local\\Temp\\go-build2903845654=/tmp/go-build -gno-record-gcc-switches
C:\\Users\\ASUS>
Go开发编辑器
Go采用的是UTF-8编码的文本文件存放源代码,理论上使用任何一款文本编辑器都可以做Go语言开发,这里推荐使用VS Code 和Goland。 VS Code是微软开源的编辑器,而Goland是jetbrains出品的付费IDE。
我们这里使用VS Code 加插件做为go语言的开发工具。
VS Code 介绍
VS Code全称Visual Studio Code,是微软公司开源的一款免费
现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、GIT 等特性,支持插件扩展,支持 Win、Mac 以及 Linux平台。
虽然不如某些IDE功能强大,但是它添加Go扩展插件后已经足够胜任我们日常的Go开发。
下载与安装
VS Code官方下载地址:https://code.visualstudio.com/Download
三大主流平台都支持,请根据自己的电脑平台选择对应的安装包。
双击下载好的安装文件,双击安装即可。
安装 go 扩展
现在我们要为我们的VS Code编辑器安装Go扩展插件,让它支持Go语言开发。
第一个Go程序
现在我们来创建第一个Go项目——hello。在我们桌面创建一个hello目录。
使用 go module 模式新建项目时,我们需要通过 go mod init 项目名命令对项目进行初始化,该命令会在项目根目录下生成go.mod文件。
例如,我们使用 hello 作为我们第一个Go项目的名称,执行如下命令。
go mod init hello
编写代码
接下来在该目录中创建一个 main.go
文件:
// 声明 main 包,表明当前是一个可执行程序
package main
// 导入内置 fmt 包
import "fmt"
// main函数,是程序执行的入口
func main()
// 在终端打印 Hello World!
fmt.Println("Hello World!")
非常重要 !!!
如果此时VS Code右下角弹出提示让你安装插件,务必点 install all 进行安装。
编译
go build 命令表示将源代码编译成可执行文件。
在 hello 目录下执行:go build
或者在其他目录执行以下命令:go build hello
go编译器会去 GOPATH的 src 目录下查找你要编译的hello项目。
编译得到的可执行文件会保存在执行编译命令的当前目录下,如果是windows平台会在当前目录下找到hello.exe可执行文件。
可在终端直接执行该 hello.exe文件:
PS D:\\GolangObject> go mod init hello
go: creating new go.mod: module hello
PS D:\\GolangObject> go build
PS D:\\GolangObject> .\\hello.exe
Hello World!
PS D:\\GolangObject>
我们还可以使用 -o
参数来指定编译后得到的可执行文件的名字。
go build -o heiheihei.exe
Windows下VSCode切换cmd.exe作为默认终端
go run
go run main.go
也可以执行程序,该命令本质上也是先编译再执行。
PS D:\\GolangObject> go run main.go
Hello World!
PS D:\\GolangObject>
go install
go install 表示安装的意思,它先编译源代码得到可执行文件,然后将可执行文件移动到 GOPATH 的 bin 目录下。
因为我们的环境变量中配置了GOPATH下的bin目录,所以我们就可以在任意地方直接执行可执行文件了。
跨平台编译
默认我们 go build 的可执行文件都是当前操作系统可执行的文件,Go语言支持跨平台编译——在当前平台(例如Windows)下编译其他平台(例如Linux)的可执行文件。
Windows 编译 Linux 可执行文件
如果我想在Windows下编译一个Linux下可执行文件,那需要怎么做呢?
只需要在编译时指定目标操作系统的平台和处理器架构即可。
注意:无论你在Windows电脑上使用VsCode编辑器还是Goland编辑器,都要注意你使用的终端类型,因为不同的终端下命令不一样!!!
目前的Windows通常默认使用的是PowerShell终端。
如果你的 Windows 使用的是cmd,那么按如下方式指定环境变量。
SET CGO_ENABLED=0 // 禁用CGO
SET GOOS=linux // 目标平台是linux
SET GOARCH=amd64 // 目标处理器架构是amd64
如果你的Windows使用的是PowerShell终端,那么设置环境变量的语法为:
$ENV:CGO_ENABLED=0
$ENV:GOOS="linux"
$ENV:GOARCH="amd64"
在你的Windows终端下执行完上述命令后,再执行下面的命令,得到的就是能够在Linux平台运行的可执行文件了。
go build
Linux编译Windows可执行文件
Linux平台下编译Windows平台64位可执行程序:
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
现在,开启你的Go语言学习之旅吧。人生苦短,let’s Go.
以上是关于linux环境下golang怎么编译exe的主要内容,如果未能解决你的问题,请参考以下文章