Go语言(一) 环境的搭建
一步一步,从零搭建go语言开发环境。
安装go语言及搭建go语言开发环境
下载
下载地址
go官网下载地址:
go官方镜像站(推荐):
版本的选择
windows平台和mac平台推荐下载可执行文件版,linux平台下载压缩文件版。
安装
windows安装
此安装实例以 64位win10
系统安装 go1.11.5可执行文件版本
为例。
将上一步选好的安装包下载到本地。
双击下载好的文件
linux下安装
我们在版本选择页面选择并下载好go1.11.5.linux-amd64.tar.gz
文件:
wget https://dl.google.com/go/go1.11.5.linux-amd64.tar.gz
将下载好的文件解压到/usr/local
目录下:
mkdir -p /usr/local/go # 创建目录 tar -c /usr/lcoal/go zxvf go1.11.5.linux-amd64.tar.gz. # 解压
如果提示没有权限,加上sudo
以root用户的身份再运行。执行完就可以在/usr/local/
下看到go目录了。
配置环境变量: 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.11.5 linux/amd64
mac下安装
下载可执行文件版,直接点击下一步安装即可,默认会将go安装到/usr/local/go
目录下。
检查
上一步安装过程执行完毕后,可以打开终端窗口,输入go version
命令,查看安装的go版本。
配置gopath
gopath
是一个环境变量,用来表明你写的go项目的存放路径(工作目录)。
gopath
路径最好只设置一个,所有的项目代码都放到gopath
的src
目录下。
linux和mac平台就参照上面配置环境变量的方式将自己的工作目录添加到环境变量中即可。 windows平台按下面的步骤将d:\code\go
添加到环境变量:
在 go 1.8 版本之前,gopath
环境变量默认是空的。从 go 1.8 版本开始,go 开发包在安装完成后会为 gopath
设置一个默认目录,参见下表。
gopath在不同操作系统平台上的默认值
平台 | gopath默认值 | 举例 |
---|---|---|
windows | %userprofile%/go | c:\users\用户名\go |
unix | $home/go | /home/用户名/go |
同时,我们将 goroot
下的bin目录及gopath
下的bin目录都添加到环境变量中。
go项目结构
在进行go语言开发的时候,我们的代码总是会保存在$gopath/src
目录下。在工程经过go build
、go install
或go get
等指令后,会将下载的第三方包源代码文件放在$gopath/src
目录下, 产生的二进制可执行文件放在 $gopath/bin
目录下,生成的中间缓存文件会被保存在 $gopath/pkg
下。
如果我们使用版本管理工具(version control system,vcs。常用如git)来管理我们的项目代码时,我们只需要添加$gopath/src
目录的源代码即可。bin
和 pkg
目录的内容无需版本控制。
适合个人开发者
我们知道源代码都是存放在gopath
的src
目录下,那我们可以按照下图来组织我们的代码。
目前流行的项目结构
go语言中也是通过包来组织代码文件,我们可以引用别人的包也可以发布自己的包,但是为了防止不同包的项目名冲突,我们通常使用*域名
来作为包名的前缀,这样就不担心项目名冲突的问题了。
因为不是每个个人开发者都拥有自己的*域名,所以目前流行的方式是使用个人的github用户名来区分不同的包。
举个例子:张三和李四都有一个名叫studygo
的项目,那么这两个包的路径就会是:
import "github.com/zhangsan/studygo"
和
import "github.com/lisi/studygo"
以后我们从github上下载别人包的时候,如:
go get github.com/jmoiron/sqlx
那么,这个包会下载到我们本地gopath
目录下的src/github.com/jmoiron/sqlx
。
适合企业开发者
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程序
hello world
现在我们来创建第一个go项目——hello
。在我们的gopath
下的src目录中创建hello目录。
在该目录中创建一个main.go
文件:
1 package main // 声明 main 包,表明当前是一个可执行程序 2 3 import "fmt" // 导入内置 fmt 包 4 5 func main(){ // main函数,是程序执行的入口 6 fmt.println("hello world!") // 在终端打印 hello world! 7 }
go build
go build
表示将源代码编译成可执行文件。
在hello目录下执行:
go build
或者在其他目录执行以下命令:
go build hello
go编译器会去 gopath
的src目录下查找你要编译的hello
项目
编译得到的可执行文件会保存在执行编译命令的当前目录下,如果是windows平台会在当前目录下找到hello.exe
可执行文件。
可在终端直接执行该hello.exe
文件:
d:\code\go\src\hello>hello.exe hello world!
我们还可以使用-o
参数来指定编译后可执行文件的名字。
go build -o heiheihei.exe
go install
go install
表示安装的意思,它先编译源代码得到可执行文件,然后将可执行文件移动到gopath
的bin目录下。因为我们的环境变量中配置了gopath
下的bin目录,所以我们就可以在任意地方直接执行可执行文件了。
跨平台编译
默认我们go build
的可执行文件都是当前操作系统可执行的文件,如果我想在windows下编译一个linux下可执行文件,那需要怎么做呢?
只需要指定目标操作系统的平台和处理器架构即可:
set cgo_enabled=0 // 禁用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语言学习之旅吧。人生苦短,let’s go.
上一篇: iOS-电子书开发 笔记
推荐阅读
-
oracle安装环境搭建以及PLSQLDeveloper使用的教程
-
Thinkphp搭建包括JS多语言的多语言项目实现方法
-
安装配置php-fpm来搭建Nginx+PHP的生产环境
-
CentOS6环境下搭建路由器的方法
-
Docker下搭建一个JAVA Tomcat运行环境的方法
-
Docker学习之基于Dockerfile搭建JAVA Tomcat运行环境的方法
-
详解Docker学习笔记之搭建一个JAVA Tomcat运行环境
-
新手和企业如何一步步搭建自己的网站?
-
荐 使用IDEA搭建一个简单的JavaWeb图书管理项目(详细步骤指导、提供源码)
-
在Linux虚拟环境下搭建DB2的多分区数据库DPF