Windows下Go安装&环境配置&编译运行

Go下载安装

官方Go下载站点:https://golang.google.cn/ 也能够选择:https://studygolang.com/dlhtml

配置环境变量

经常使用环境变量

  • GOROOT

GOROOT是Go的安装目录,在Windows中,GOROOT的默认位置是C:/go,而在Mac OS或者Linux中GOROOT的默认位置是/usr/local/go,若是Go安装在其余目录,而须要将GOROOT的位置修改成对应的目录。linux

另外,GOROOT/bin下包含Go为咱们提供的工具链,所以应该将GOROOT/bin配置到环境变量PATH中,方便咱们在全局中使用Go的工具链。android

<font color=#FF0000 >例如 :</font> 如今Go的安装目录在D:\WindowsSoftware\Golang,须要在系统变量中添加GOROOT,值为D:\WindowsSoftware\Golang GOROOTgolang

  • GOPATH

GOPATH是Go语言的工做目录。 go install/go get和 go的工具等会用到GOPATH环境变量。 GOPATH是做为编译后二进制的存放目的地和import包时的搜索路径。 GOPATH主要包含三个目录: binpkgsrcwindows

  • bin:主要存放可执行文件。
  • pkg:存放编译好的库文件, 主要是*.a文件。
  • src:下主要存放go的源文件。 此外还须要注意的是不要讲GOROOT设置城Go语言的路径,避免出现没必要要的冲突。

GOPATH能够设置多个工做区,不过当咱们使用go get命令去获取远程库的时候,通常会安装到第一个工做区当中。架构

每一个工做区使用分号,分割便可。编辑器

export GOPATH=/opt/go;$home/go

<font color=#FF0000 >例如 :</font> 工做区在D:\GoPath,须要在系统变量中添加GOPATH,值为D:\GoPath GOPATH工具

  • GOBIN GOBIN是咱们在开发程序编译后二进制命令的安装目录。

当咱们使用go install命令编译和打包应用程序时,该命令会将编译后的二进制程序打包GOBIN目录,通常咱们将GOBIN设置为GOPATH/bin。开发工具

<font color=#FF0000 >例如 :</font> 在系统变量中找到path,添加值%GOROOT%\bin%GOPATH%\bin path测试

  • 检测配置是否成功 打开CMD,输入go env go env

不经常使用环境变量

  • GOOS与GOARCH

GOOS与GOARCH是当须要进行跨平台编译的时候,须要设置的环境变量,这种编译方式叫作交叉编译。

所谓的交叉编译,是指在一个平台上就生成能够在另一个平台上运行的代码,例如咱们能够在32位的Windows操做系统上开发,而后生成能够在64位的Linux操做系统上运行的二进制进程。

GOOS:它的默认值是咱们当前的操做系统,例如Windows、Linux,可是须要注意的是Mac OS的对应值是darwin。 GOARCH:表示CPU的架构,如386,amd64,arm等。 能够经过go env来获取当前GOOS与GOARCH的值。

$ go env GOOS GOARCH
darwin
amd64

GOOS与GOARCH的取值范围。 GOOS与GOARCH的值成对出现,并且只能是下面列表对应的值。

GOOS        GOARCH
------------------
android     arm
darwin      386
darwin      amd64
darwin      arm
darwin      arm64
dragonfly   amd64
freebsd     386
freebsd     amd64
freebsd     arm
linux       386
linux       amd64
linux       arm
linux       arm64
linux       ppc64
linux       ppc64le
linux       mips
linux       mipsle
linux       mips64
linux       mips64le
linux       s390x
netbsd      386
netbsd      amd64
netbsd      arm
openbsd     386
openbsd     amd64
openbsd     arm
plan9       386
plan9       amd64
solaris     amd64
windows     386
windows     amd64

编译在64位Linux操做系统上运行的目标程序

$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go

编译arm架构Android操做上的目标程序

$ CGO_ENABLED=0 GOOS=android GOARCH=arm GOARM=7 go build main.go
  • 全部环境变量列表

虽然咱们通常虽然配置的环境变量就那么几个,但其实Go语言是提供了很是多的环境变量,让咱们能够自由地定制开发和编译器行为。

下面是Go提供的全部的环境变量列表,通常能够划分为下面几大类,大概了解一下就能够了,由于有些环境变量咱们能够永远都不会用到。

GCCGO
GOARCH
GOBIN
GOCACHE
GOFLAGS
GOOS
GOPATH
GOPROXY
GORACE
GOROOT
GOTMPDIR
  • 和cgo一块儿使用的环境变量
CC
CGO_ENABLED   // 禁用cgo
CGO_CFLAGS
CGO_CFLAGS_ALLOW
CGO_CFLAGS_DISALLOW
CGO_CPPFLAGS, CGO_CPPFLAGS_ALLOW, CGO_CPPFLAGS_DISALLOW
CGO_CXXFLAGS, CGO_CXXFLAGS_ALLOW, CGO_CXXFLAGS_DISALLOW
CGO_FFLAGS, CGO_FFLAGS_ALLOW, CGO_FFLAGS_DISALLOW
CGO_LDFLAGS, CGO_LDFLAGS_ALLOW, CGO_LDFLAGS_DISALLOW
CXX
PKG_CONFIG
AR
  • 与系统架构体系相关的环境变量
GOARM
GO386
GOMIPS
GOMIPS64
  • 专用的环境变量
GCCGOTOOLDIR
GOROOT_FINAL
GO_EXTLINK_ENABLED
GIT_ALLOW_PROTOCOL
  • 全部环境变量列表
GOEXE
GOHOSTARCH
GOHOSTOS
GOMOD
GOTOOLDIR

目录结构

  • 目前流行的项目结构
├── bin  # 存放编译后的二进制文件
├── pkg  # 存放编译后的库文件
└── src  # 存放源码文件
    └── code.fdevops.com  # 使用网站域名区分项目
        └── lanyulei      # 做者/部门/机构...
            └── demo1     # 项目
                └── main.go

推荐编辑器

Go采用的是UTF-8编码的文本文件存放代码的,理论上使用任何一款文件编辑器均可以作Go语言开发,这里主要推荐两个开发工具。

  • VS Code

Visual Studio Code(简称VS Code)是一个由微软开发的,同时支持Windows、Linux、和macOS系统且开放源代码的代码编辑器,它支持测试,并内置了Git 版本控制功能,同时也具备开发环境功能,例如代码补全(相似于 IntelliSense)、代码片断、和代码重构等,该编辑器支持用户个性化配置,例如改变主题颜色、键盘快捷方式等各类属性和参数,还在编辑器中内置了扩展程序管理的功能。

虽然不如一些IDE功能强大,可是它添加Go扩展插件后已经足够胜任咱们平常的Go开发工做了,并且它占用资源较少,因此就算配置较低的电脑也可使用。

  • Goland

喜欢用IDE作开发的同窗一定不能错过Jetbrains家族的IDE,款款精品,可谓都是IDE中的神兵利器。

下面介绍的就是Jetbrains家族中开发Go语言的Goland。

Goland是付费的,固然网上也会有一些激活码能够直接激活使用,可是我的认为,若是条件容许的话,但愿购买正版,如果不肯意付费的话,建议使用VS Code也可知足正常开发需求。

编写第一个Go程序

  • hello.go
package main

import (
	"fmt"
)

func main() {
	fmt.Println("Hello Go!")
}
  • 编译
go build hello.go

go build命令能够将Go语言程序代码编译成二进制的可执行文件,可是须要咱们手动运行该二进制文件.

go run hello.go

go run命令则更加方便,它会在编译后直接运行Go语言程序,编译过程当中会产生一个临时文件,但不会生成可执行文件,这个特色很适合用来调试程序。

  • 运行
./hello

参考:

https://blog.51cto.com/11293981/2417803 http://c.biancheng.net/view/6046.html

相关文章
相关标签/搜索