golang开发环境搭建
admin
2023-08-01 10:40:06
0

0 大纲

本文总结在安装Go时如何配置GoLang的环境变量和创建一个Project的目录结构。下文描述适用于LINIX环境。


1 安装及环境变量

Go的安装方法包括:默认安装和自定义安装,官方的描述请参看这里:http://golang.org/doc/install

其中:

(1) 默认安装比较简单,但需要root权限,默认安装路径是:/usr/local/go;

(2) 自定义安装需要另外配置GOROOT环境变量; 


本文采用默认安装。下面的环境变量需要添加到当前用户的 .bashrc 配置中。其中:

(1) 显示将Go的bin安装目录配置在PATH环境变量中;

(2) 注意GOPATH不是Go的安装目录,而是用户的工作目录(可自定义),Go命令依赖GOPATH这个重要的环境变量。

# Golang enviroment variable
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=/Users/gerryyang/code/go/mygo


2 Project目录结构

GOPATH的说明:

(a) GOPATH允许多个目录,当有多个目录时,请注意冒号分隔符。当有多个GOPATH时,默认将go get的内容放在第一个目录下。

(b) GOPATH目录约定有三个子目录:

--- src 存放源代码(比如:.go / .c / .h / .s 等)

--- pkg 编译后生成的文件(比如:.a)

--- bin 编译后生成的可执行文件 (不建议把这个目录放在PATH下,虽然方便!)


一个简单的Project,计算一个数的平方根,GOPATH如上所配,初始的目录结构如下所示:

注意:建议package的名称和目录名保持一致,例如,main.go在mathapp包内,并在mathapp目录下。

golang开发环境搭建

sqrt.go


package mymath

func Sqrt(x float64) float64 {
	z := 0.0
	for i := 0; i < 1000; i++ {
		z -= (z*z - x) / (2 * x)
	}
	return z
}


main.go


package main

import (
	"fmt"
	"mymath"
)

func main() {
	fmt.Printf("use my package to calc, Sqrt(2)=%v\n", mymath.Sqrt(2))
}


由于我们已经配置好了GOPATH环境变量,因此可以通过两种方法编译安装用户自定义的包


(1) 进入对应的应用包目录,然后执行 go install,即可完成安装;

(2) 在任意的目录下执行代码 go install yourapp


针对上面的例子,通过如下步骤进行编译安装:

(1) 进入 mymath/ 下,执行 go install mymath,此时目录结构如下:

golang开发环境搭建

(2) 进入 mathapp/ 下,执行 go build,此时目录结构如下:

golang开发环境搭建


(3) 进入 mathapp/ 下,执行 go install,此时目录结构如下:

golang开发环境搭建


(4) 其实(2)和(3)步可以合并成一步,进入 mathapp/ 下,直接执行 go install,此时目录结构如下:

golang开发环境搭建

(5) 执行测试程序,进入 bin/ 下并执行程序:

golang开发环境搭建


3 参考

[1] Go Web编程

[2] http://golang.org/doc/install


相关内容

热门资讯

轻薄长续航加全能好屏,最值得买... 看最值得买的折叠屏手机推荐,核心要抓轻薄手感、续航底气、屏幕素质和AI办公完整度,这几项直接决定日常...
风声|肖鹰和蒋方舟的战争:警惕... 作者丨洪昭资深媒体评论员最近一周,清华大学肖鹰教授举报青年作家蒋方舟人大硕士论文造假一事持续霸榜热搜...
“调查因凡蒂诺”,72名欧洲议... 【环球网报道 记者 李梓瑜】据“政治新闻网”欧洲版报道,当地时间8日,72名欧洲议会议员联名致信欧盟...
内鬼受贿2千万致公司损失1个亿... 澎湃新闻记者 朱远祥经历两次立案、两次撤案之后,商人尚选玉近日被海南警方重新立案侦查。海口市公安局的...
加拿大载10名华人渔船离奇沉没... 加拿大不列颠哥伦布省一艘全是华人的商业海钓包船6月底出海后突然沉没。据悉,船上共有10人,均为华人,...
广西回应六蓝水库现状:水位下降... 今天,广西南宁防汛救灾发布会通报:位于横州市的六蓝、云表两座水库都建于1958年,属于中型水库,坝体...
干搜索12年,前百度老兵实话:... 入行12年,我算是妥妥的搜索圈老兵。毕业直接入职百度服务商公司,深耕搜索营销,前十年死磕SEO优化,...
一滴水的48载“长征” 48载俯身田间,一项项节水专利技术研发出来,一条条滴灌管线延伸开来,一片片作物丰腴起来。 48载,青...
河南移动:以“智为先”书写AI... 【大河财立方 记者 王楠 通讯员 王静】“智汇中原,数创未来”,2026河南省人工智能大会7月9日启...
原创 乱... 提效还是背锅? 定焦One(dingjiaoone)原创 作者 |金玙璠 陈丹 王汉星 李梦冉 雷晶...