设置Golang的GOPATH
来源:互联网 发布:网络词萌萌是什么意思 编辑:程序博客网 时间:2024/06/08 19:22
Go是一门全新的静态类型开发语言,具有自动垃圾回收
,丰富的内置类型
,函数多返回值
,错误处理
,匿名函数
,并发编程
,反射
等特性.
golang安装
golang下载
sudo tar -zvxf go1.6.2.linux-amd64.tar.gzsudo mv go /usr/local/go#设置环境变量vi /etc/profileexport GOROOT=/usr/local/go #设置为go安装的路径export GOPATH=$HOME/gocode #默认安装包的路径export PATH=$PATH:$GOROOT/bin:$GOPATH/binsource /etc/profile
GOPATH设置
go
命令依赖一个重要的环境变量:$GOPATH
GOPATH
允许多个目录,当有多个目录时,请注意分隔符,多个目录的时候Windows是分号;
,Linux系统是冒号:
当有多个GOPATH时
默认将go get
获取的包存放在第一个目录下 $GOPATH
目录约定有三个子目录
src
存放源代码(比如:.go .c .h .s等)pkg
编译时生成的中间文件(比如:.a)bin
编译后生成的可执行文件(为了方便,可以把此目录加入到 $PATH 变量中,如果有多个gopath,那么使用${GOPATH//://bin:}/bin
添加所有的bin目录)
代码目录结构规划
GOPATH下的src目录就是接下来开发程序的主要目录,所有的源码都是放在这个目录下面,那么一般我们的做法就是一个目录一个项目,例如: $GOPATH/src/mymath 表示mymath这个应用包或者可执行应用,这个根据package是main还是其他来决定,main的话就是可执行应用,其他的话就是应用包,这个会在后续详细介绍package。
下面我就以mymath为例来讲述如何编写应用包,执行如下代码
新建一个自己golang
代码的路径myGolang
export GOPATH=$HOME/gocode:$HOME/myGolangexport PATH=$PATH:$GOROOT/bin:${GOPATH//://bin:}/bin
cd $GOPATH/srcmkdir mymath
新建文件fabnacci.go
package mymathfunc Fabnacci(num int) int { if num == 0 || num == 1 { return num } return Fabnacci(num -1) + Fabnacci(num -2)}
编译应用
上面我们已经建立了自己的应用包,如何进行编译安装呢?有两种方式可以进行安装
- 进入对于的安装包目录,然后执行
go install
- 在任意的目录下指定需要编译的包
go build mymath
编译后可以在$GOPATH/pkg/${GOOS}_${GOARCH}
下看到mymath.a
文件
.a文件是应用包,那么我们如何进行调用呢?
接下来我们新建一个应用程序来调用这个应用包
cd $GOPATH/srcmkdir mathapp
新建Fabnacci.go文件
package mainimport ( "mymath" "fmt" "os" "strconv")func main() { if len(os.Args) < 2 { fmt.Println("input number") return } num, err := strconv.Atoi(os.Args[1]) if err != nil { fmt.Println("input must be number", err) return } fmt.Println("Fabnacci :", num, mymath.Fabnacci(num))}
如何编译程序呢?进入该应用目录,然后执行go build
,在该目录下会生成mathapp
可执行文件
time ./mathapp 45Fabnacci : 45 1134903170real 0m10.836suser 0m10.208ssys 0m0.032s
如何安装应用程序?进入该目录执行go install
,那么会在$GOPATH/bin/
增加一个可执行文件mathapp
$GOPATH/bin/
目录已经加入了环境变量,可以直接运行mathapp
参照:
- GOPATH与工作空间
0 0
- 设置Golang的GOPATH
- 设置Golang的GOPATH
- GO语言GOPATH的设置
- windows上GOROOT和GOPATH的设置
- windows上GOROOT和GOPATH的设置
- Go GOPATH设置
- macos系统下共语言gopath变量的设置
- GoLang入门2-GOPATH与工作空间
- 遇到的GOPATH问题
- go 设置 GOROOT 和 GOPATH
- Ubuntu设置GOPATH,GOROOT环境变量
- Golang学习之GOROOT、PATH、GOPATH及go get
- $gopath not set的解决办法
- GO 语言的GOROOT 和GOPATH
- Golang开发环境LiteIDE的设置
- go语言的工作空间和GOPATH环境变量
- 执行sudo go get出现$GOPATH not set的问题
- Go语言的工作空间和GOPATH环境变量
- SkyForm CMP容器化实践
- UVA 201
- 程序员眼中的古典名画
- [BZOJ2819]Nim(树链剖分)
- js--数组对象的属性方法整理
- 设置Golang的GOPATH
- javaee的EL表达式
- Windows 常用消息大全
- 如何在网页上弹出一个对话框显示一些内容javascript
- 欢迎使用CSDN-markdown编辑器
- ANDROID内存优化(大汇总——全)
- Javase网络通讯(socket编程)群聊系统
- php微信开发中各种小技巧收集
- Caffe 深度学习框架上手教程