为想尝试 Go 的朋友开个头,介绍环境的配置。语言的优缺点不在此展开。
因身边多数使用 Win64 环境,以下无特殊说明均以 Win64 为例,日后有需要再补充其他平台部分。
1. Go
- 下载:https://golang.org/dl/ (out of wall)
- 版本:1.9+,一般下载最新版本即可
1.1 安装
访问官网下载页面,获取对应版本。不过如果你不懂得翻-墙,会发现访问不了官网,因为它在 Google 的服务器上。这点请自行解决。不过经过 PuTTY 和 iOS SDK 第三方下载被植入木马的事件,劝各位还是努力到官网下载。
Win64 的安装文件一般为 go1.xx.y.windows-amd64.msi
,下载好后安装,路径默认或自定义,没有强制要求,不要出现中文和空格,尽量短一些即可。个人路径供参考: D:\Dev\Go
。
1.2 环境变量
安装后设置环境变量,指定 官方工具包(及内置库) 和 工作目录。
以下设置均在:我的电脑(Win10 此电脑) > 右键菜单 > 属性 > 高级系统设置 > 环境变量
, 如果变量存在就确认内容,不存在就新建。
1.2.1 GOROOT
指定 Go 的安装目录,并以此确定工具包和内置库的位置。确保 GOROOT
指向 Go 的安装目录 (例: D:\Dev\Go
)。
1.2.2 GOPATH
指定 Go 的 workspace(工作目录)。GOPATH
允许指定多个 workspace,中间以 ;
隔开(跟 PATH
类似,其他平台下的分隔符是 :
)。可以在任意一个 workspace 下开发,但是 go get
和 go install
的包只会放在第一个目录。当引用包的时候,会先查找 %GOROOT%\pkg
的语言内置包,再顺序查找每个 workspace 的 src
目录,找到就结束。
一般情况下,推荐设置两个 workspace : 第一个存放下载的第三方依赖包,第二个存放本地开发的代码,分开避免混淆。例:C:\Users\Jayce\go;E:\workspace\go
。
1.2.3 PATH
PATH
是系统自带的执行路径,所以我们不能覆盖它,只能在后面追加。需要将GOROOT 的 bin 目录 和 第一个 workspace 的 bin 目录加入 PATH ,以调用 官方工具包 和 安装的第三方工具。其中如果你检查 GOROOT 的时候发现 GOROOT 已经配置好了,有可能 %GOROOT%\bin
也已经添加了,你可以复制到记事本里检查一下。
假定两个都没有添加,那么以上述 GOPATH
的配置为例,则是 原来的PATH内容;%GOROOT%\bin;C:\Users\Jayce\go\bin
注:Win10 对 PATH 的管理进行了优化,不再是一长串用 ;
分隔的路径,而是一个路径的列表,追加时只需新建子项即可。
1.3 验证
打开 cmd,然后按如下操作
1
2
3
4
5
|
# 查看安装版本
go version
# 正常应该显示你安装的版本
# 找不到指令请检查安装 GOROOT 的安装目录是否正确 / PATH 里是否包含了 %GOROOT%\bin
go version go1.10.1 windows/amd64
|
2. gcc 和 make
有时部分依赖包以 C 开发,需要用到 gcc 编译;另外,为简化编译流程,项目规模增大后会逐渐交由 make 管理编译。两个工具在 Linux 下一般自带,或通过系统的包管理很轻易地安装,Windows 下则要安装 MinGW-w64 。注意必须是 MinGW-w64 。MinGW 不兼容 64 位系统,同时长期不更新;而 w64 可以同时兼容 32 和 64 位。
2.1 安装
下载得到的是安装器,在选择版本后,会自动下载对应版本并安装。建议不要改动任何选项,只需要确保 Architecture 对应你的计算机即可(Win64 选 x86_64)。
安装路径依然没有强制要求,无中文和空格,尽量短即可。参考:D:\Dev\mingw-w64
。
2.2 创建 make 的软链接
安装完后进入 安装目录的 bin 目录,可以看到大量的工具,其中有 gcc.exe
和 mingw32-make.exe
,没有 make.exe
。其实 mingw32-make.exe
就是,但是用这个名字调用太长,也不利于其他工具用默认的名字调用,所以我们要创建一个名字叫 make.exe
的软链。
首先用管理员权限打开 cmd (右键菜单 > 用管理员权限打开),然后按如下操作:
1
2
3
4
5
|
# 请修改路径对应你的安装目录
C:\Windows\system32>cd /d D:\Dev\mingw-w64\bin
D:\Dev\mingw-w64\bin>mklink make.exe mingw32-make.exe
为 make.exe <<===>> mingw32-make.exe 创建的符号链接
|
建议创建软链之后就关掉管理员权限的 cmd,避免因权限过高造成不可恢复的误操作。后续操作在普通权限下执行即可。
完成后你会看到 bin 目录下多了一个 make.exe
文件,然后执行 dir make.exe
,会看到
1
2
|
D:\Dev\mingw-w64\bin>dir make.exe
2018/10/04 18:17 <SYMLINK> make.exe [mingw32-make.exe]
|
2.3 PATH 环境变量
跟 Go 安装类似的, bin 目录也要追加到 PATH 目录的最后,详细可以参考 1.2.3 Go 的 PATH 环境变量部分。
特别强调:mingw-w64 下面还有一套 mingw32,添加到 PATH 的是根目录的 bin,不是 mingw32 下面的!!
1
2
3
4
5
|
mingw-w64
├── bin # 64位系统认准这个!!
├── mingw32
│ ├── bin # 不是这个
......
|
2.4 验证
1
2
3
4
|
gcc --version
# 正常会输出 gcc 的版本,64位:x86_64, 32位:i686; 注意区分
make -v
# 能调用就行,不需要留意位数
|
3. 项目包管理及编译
3.0 预备知识:Go 的目录结构与包管理
每个 workspace 下都有三个指定用途的目录,用到的时候如果不存在,会自动创建:
1
2
3
|
├── bin # 存放 install 之后的可执行文件
├── pkg # 存放编译之后链接之前的中间文件
└── src # 存放 包 的源文件
|
其中 go get
获得的 src 和 go install
获得的 bin ,会放在第一个 workspace 中,所以建议至少添加两个 workspace,并在第二个进行本地开发,避免混淆。
Go 语言引用包时,需要在代码开头 import 对应包的路径(非包名,虽然路径的最后一层目录往往跟包名一样,但也可以不一样):
1
2
3
4
|
import (
"../local/relative/path" // 相对路径。不纳入 workspace 的小项目允许。正规项目需要纳入,会报错!!
"github.com/urface/cli" // 全局路径。
)
|
全局路径的 import
- 先在
%GOROOT%\pkg
查找内置的包(已编译,所以引用 pkg) - 再在每个 workspace 的 src 目录查找
- 在 1.6 版本后新增了项目根目录下的 vendor 目录,可以通过依赖管理工具拷贝特定版本的依赖,方便锁定依赖的版本,并随项目源码一起提交。
使用了 local import 的包,不能被别的包 import,所以在正式项目中基本是禁止使用的。那么需要被引用的包只能存放在 src 或者 vendor 中。
跟 Java 相比最大的差别就是, 项目的根目录不在 import 的搜索范围内 。Java 项目内的包,包名(跟路径对应)不包括项目名,从根目录下开始算;Go 没有项目本地包的概念,都是全局 import,包路径从 src 下开始算,所以项目根目录名也是包路径的一部分。由此得出结论:
- Go 项目必须在 workspace 的 src 目录下开发
- 根目录 名字确定后就不能随意更改 ,否则项目内的互相 import 都得改
3.1 包管理
有了上述知识准备,接下来的内容就容易理解了。
- git clone 必须在 (第二个) workspace 的 src 目录进行 (后续要新建项目同理)。
- 项目名(例:myproj) 需要跟 import 路径 (
import myproj/xxx/yyy
) 保持一致,新建项目时就要考虑,clone 之后不能修改目录名。 - 推荐使用官方的依赖管理工具 dep,所有第三方依赖都会拷贝到 vendor 跟源码一起管理,clone 后不需
go get
对应的依赖。
3.2 编译
在确保做好包管理的基础上,编译就很简单了,在根目录打开 cmd:
1
|
go build
|
即可。
(后续项目复杂度增加后,编译建议交给 make 管理。)
4. IDE
-
LiteIDE:LiteIDE is a simple, open source, cross-platform Go IDE
国人开发的开源跨平台 IDE,简单,免费,够用。
-
GoLand:A Clever IDE to Go by JetBrains
IDE 名门 JetBrains 出品,口碑很好,就是要付费。
-
Visual Studio Code:Code Editing. Redefined
传统软件巨头微软拥抱开源之后的 开源 IDE ,热度很高;并非专门为 Go 设计,但提供相关插件。
视乎你更习惯哪个 IDE,看你自己喜欢。
5. 其他工具
- bindata:将资源文件编译成 go 源码,参与编译。(类似 Android 下的 R.java)
- dep:Go 官方依赖管理工具,将指定版本的第三方依赖拷贝到 vendor 目录,跟源码一起管理。
参考:https://jaycechant.info/2018/setup-golang-env/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2019-06-17 玩转Windows服务系列——使用Boost.Application快速构建Windows服务
2015-06-17 http协议使用实例
2015-06-17 curl_easy_setopt-curl库的关键函数之一
2015-06-17 libcurl教程
2015-06-17 LibCurl编程手册以及代码实例
2015-06-17 Linux下的iwpriv(iwlist、iwconfig)的简单应用
2015-06-17 OCX控件的注册卸载,以及判断是否注册