Go 安装介绍
Go介绍
Go
语言被誉为21世纪的C
语言,由Google
公司开发,天生对高并发有着优秀的支持。并且语法极度简洁,关键字仅有25个。
所以使用Go
语言时你不用担心自己写的和大神写的有着天差地别,Go
语言开发者所书写的代码大家基本都是能看得懂的。
值得一提的是Go
的跨平台性,Go
语言跨平台性强到令人发指,你甚至可以再windows
下进行开发然后编译出linux
下的二进制文件进行部署。
Go安装
以下是Go
语言的官网,点击下载进行安装即可。
Windows
windows
平台下的安装十分简单。当我们下载完安装程序后,双击打开进行安装即可。
Linux
如果你习惯了在Linux
下进行编码,则可以安装Linux
的Golang
。
当然,基于Golang
的跨平台特性,你在window
下进行安装和书写代码后编译为Linux
下的可执行文件也可。
选择你的Go
版本,进行安装。
wget https://dl.google.com/go/go1.14.1.linux-amd64.tar.gz
将下载好的文件解压到/usr/local
目录下(建议使用root
用户解压):
tar -zxvf go1.14.1.linux-amd64.tar.gz -C /usr/local # 解压
最后配置一下环境变量,: Linux
下有两个文件可以配置环境变量,其中/etc/profile
是对所有用户生效的;$HOME/.profile
是对当前用户生效的,根据自己的情况自行选择一个文件打开,添加如下两行代码,保存退出。
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
修改/etc/profile
后要重启生效,修改$HOME/.profile
后使用source命令加载$HOME/.profile
文件即可生效。 检查:
~ go version
go version go1.14.1 linux/amd64
版本检查
当安装完Go
后,打开终端输入go version
命令即可检查是否安装成功。
目录结构
我们在windows
下打开刚刚安装好的Go
,可查看到如下的目录结构:
目录名 | 描述 |
---|---|
api | 每个版本的 api 变更差异 |
bin | go 源码包编译出的编译器(go)、文档工具(godoc)、格式化工具(gofmt) |
doc | 英文版的 Go 文档 |
lib | 引用的一些库文件 |
misc | 杂项用途的文件,例如 Android 平台的编译、git 的提交钩子等 |
pkg | Windows 平台编译好的中间文件 |
src | 标准库的源码 |
test | 测试用例 |
环境变量
GOROOT
GOROOT
为安装Go
开发包的路径。
GOPATH
GOPATH
的路径需要我们自己在环境变量中进行配置,然后才可以使用Go
语言进行开发。
默认的在用户变量中,有一个GOPATH
,我们可以将他修改为系统变量或者修改其中的值。
修改任意值即可。
在设置完环境变量后,使用go env
可进行测试查看。
C:\Users\云崖先生>go env
set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\云崖先生\AppData\Local\go-build
set GOENV=C:\Users\云崖先生\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=D:\GoLeran\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=D:\GoLeran
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=D:\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=D:\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=
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\ 云崖先生\AppData\Local\Temp\go-build516282802=/tmp/go-build -gno-record-gcc-switches
工程目录
当配置完GOPATH
的环境变量后,我们还需要创建一些文件夹。
那么对于个人开发者和工程开发来说,都具有一个不同的目录结构。
个人开发
在GOPATH
中,我们编写的GO
源码都应该存放于src
文件夹下。
注意:默认的GOPATH下的bin目录也会添加至环境变量中。
工程开发
在工程开发中,推荐使用个人的Github
域名来进行文件夹的命名。
因为在Go
语言中,是按照包来进行管理的,所以为了防止不同包的项目名冲突,就可以按照这种结构来组织目录。
编译执行
VScode工具包
这里创建出了一个Go
文件,并书写我们的第一个Go
程序。
在书写Go
程序时,我们可以安装一些Go
的工具包(需要先安装git
)。
首先需要设置GOPROXY
,打开终端设置如下:
go env -w GOPROXY=https://goproxy.cn,direct
打开vscode
,Windows
平台按下Ctrl+Shift+P
,Mac
平台按Command+Shift+P
,这个时候vscode
界面会弹出一个输入框,在其中输入如下命令:
Go:install/Update Tools
然后全选,开始安装工具包。
Go编写
接下来编写我们的第一个Go
程序,命名为hello.go
。
package main // 声明main包,表明这是一个可执行程序
import "fmt" // 导入内置的fmt包
func main() { // main 程序入口
fmt.Println("hello,world!!") // 终端打印
}
go build
go build
表示将源代码编译成可执行文件。
如下,我们将hello.go
进行编译,在终端输入以下命令:
PS D:\GoLeran\src\yunya.com> go build -o hello.exe // 将hello.go进行编译,编译的文件名为hello.exe
PS D:\GoLeran\src\yunya.com> .\hello.exe // 执行该文件
hello,world!!
如果不使用-o
,则将以上级目录名称作为编译后的文件名称。
当然,你也可以在其他地方使用go build
,后面跟上项目路径。
go install
go install
会自动进行编译,然后进行执行。
它会将编译结果的可执行文件放在GOPATH
的bin
目录下。
go run
go run
可以使go
的源码文件立即进行执行而不进行编译。
D:\GoLeran\src\yunya.com>go run hello.go
hello,world!!
跨平台编译
默认我们go build
的可执行文件都是当前操作系统可执行的文件,如果我想在windows
下编译一个Linux
下可执行文件,那需要怎么做呢?
只需要指定目标操作系统的平台和处理器架构即可,在cmd
下输入以下三条命令:
SET CGO_ENABLED=0 // 禁用CGO 使用了CGO的代码是不支持跨平台编译的
SET GOOS=linux // 目标平台是linux
SET GOARCH=amd64 // 目标处理器架构是amd64
然后再执行go build
命令,得到的就是能够在Linux
平台运行的可执行文件了。
Mac
下编译 Linux
和Windows
平台 64位 可执行程序:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
Linux
下编译Mac
和Windows
平台64位可执行程序:
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
Windows
下编译Mac
平台64位可执行程序:
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build
Go 安装介绍的更多相关文章
- Redis安装介绍
Redis安装介绍 一.Linux版本及配置 1. Linux版本:Red Hat Enterprise Linux 6虚拟机 2. 配置: 内存:1G:CPU:1核:硬盘:20G 二.Redis ...
- Docker版本与安装介绍
Docker版本与安装介绍 Docker-CE 和 Docker-EE Centos 上安装 Docker-CE Ubuntu 上安装 Docker-CE Docker-CE和Docker-EE Do ...
- 三、安装cmake,安装resin ,tars服务,mysql 安装介绍,安装jdk,安装maven,c++ 开发环境安装
三.安装cmake,安装resin 2018年07月01日 21:32:05 youz1976 阅读数:308 开发环境说明: centos7.2 ,最低配置:1核cpu,2G内存,1M带宽 1. ...
- Docker版本与centos和ubuntu环境下docker安装介绍
# Docker版本与安装介绍 * Docker-CE 和 Docker-EE * Centos 上安装 Docker-CE * Ubuntu 上安装 Docker-CE ## Docker-CE和D ...
- SharePoint 2016 必备组件离线安装介绍
前言 SharePoint 必备组件安装,一直以来都是SharePoint安装过程中的最大的坑,尤其是不能联网的服务器.博主在这里简单介绍一下离线安装过程,并附组件包下载以及安装命令,并且在windo ...
- [Kafka] - Kafka 安装介绍
Kafka是由LinkedIn公司开发的,之后贡献给Apache基金会,成为Apache的一个顶级项目,开发语言为Scala.提供了各种不同语言的API,具体参考Kafka的cwiki页面: Kafk ...
- SaltStack 安装介绍 01
一.入门指南 1.1 SALTSTACK是什么? The backbone of Salt is the remote execution engine, which creates a high-s ...
- Percona XtraBackup 安装介绍篇
XtraBackup介绍 XtraBackup是Percona公司的开源项目,用以实现类似Innodb官方的热备份工具InnoDB Hot Backup的功能,它支持在线热备份(备份时不影响数据读写) ...
- Python下Tesseract Ocr引擎及安装介绍
1.Tesseract介绍 tesseract 是一个google支持的开源ocr项目,其项目地址:https://github.com/tesseract-ocr/tesseract,目前最新的源码 ...
- centos7下stf安装介绍(一)----环境搭建
重要:node version需要8.x.x 介绍 stf 全称 Smartphone Test Farm ,一款WEB 端移动设备批量管理工具(Remote control all your Sma ...
随机推荐
- double与Double
1. double是基本数据类型,Double是原始数据类型(Java 类) 2. double创建引用,Double创建对象 3. double不可以为NULL,Double是类所以其对象是可以为N ...
- log4j升级到log4j2
log4j升级到log4j2 1.导入依赖 log4j2应尽量使用同一版本,否则可能出现不兼容的情况 <!-- log4j2 start --> <!-- log4j-1.2-api ...
- SEO工程师考试题目
http://www.wocaoseo.com/thread-201-1-1.html SEO,全名Search Engine Optimization,其中文名字为'搜索引擎优化' .其英 ...
- 注册github时总卡在第一步无法验证的解决办法
从github官网可以看出问题所在,所以造成这一问题的极大可能就是浏览器的问题. 最简单的方法就是换手机浏览器进行注册
- 力扣Leetcode 50. 实现Pow(x, n)
实现Pow(x, n) 实现 pow(x, n) ,即计算 x 的 n 次幂函数. 示例 1: 输入: 2.00000, 10 输出: 1024.00000 示例 2: 输入: 2.10000, 3 ...
- 【学习中】Unity Schedule
章节 内容 签到 第一课:界面介绍 第一讲 编辑器工作区 4月27日 第二课:资源管理 第二讲 资源及资源类型 4月27日 第三讲 资源管理:模型和角色动画的输出设置(上) 4月27日 第四讲 资源管 ...
- 避免nullpointer 空指针
来自知乎: 一般在服务器返回的数据上我们会做数据合法性检测,所以在api文档上需要注明字段的取值范围,然后客户端根据这个去做数据检测,缺段就直接走数据错误的流程,这个很大程度上避免了不少nullpoi ...
- qdu-凑数题(01背包)
Description 小Q手里有n(n<=1000) 个硬币,每枚硬币有一定的金额(200=>x>=1)他想知道,用这些硬币(每枚硬币只能用一次,但可能会有等面值的用两次) 能组成 ...
- 在centos6.5下搭建lnmp
1.查看环境: [root@localhost /]# cat /etc/redhat-release CentOS release 6.5 (Final) 2.关掉防火墙(需要到国外地址下载软件 ...
- 下拉列表被flash覆盖的解决方法
做鼎闻有一段时间了,有的banner轮播图的地方用flash替换的时候,就会导致上面的导航条下拉列表被flash覆盖,找了一段时间没有得到有效的解决方法,后来知道关键是flash的这一属性{ &quo ...