golang安装和部署
来源:互联网 发布:线切割手动编程入门 编辑:程序博客网 时间:2024/06/05 21:17
http://www.cnblogs.com/zhepama/archive/2013/04/04/3000027.html
安装golang
GOROOT 理论上只要定义这一个环境变量就可以玩了,go编译的时候会首先在安装目录下寻找包
GOBIN 如果不定义的话,默认是$GOROOT/bin 如果想不切换目录执行go的命令的话.需要将$GOBIN 加入到PATH目录中.这个你懂的
GOPATH 一般是你的开发目录,可以有多个.多个目录的时候Windows是分号,Linux系统是冒号,当有多个GOPATH时,默认会将go get的内容放在第一个目录下
$GOPATH 目录约定有三个子目录:
- src 存放源代码(比如:.go .c .h .s等)
- pkg 编译后生成的文件(比如:.a)
- bin 编译后生成的可执行文件(为了方便,可以把此目录加入到 $PATH 变量中)
编译
构建一个Go程序需要两步:编译和链接。
编译和链 接过程都由工具go处理,它不仅可以构建本地程序和包,还能够获取、构建以及安装第三方程序和包。
go build
go build 只编译主程序(有main()函数的go文件).且如果不指定-o参数,会当前目录下生成一个可执行文件。
go build -o myfirstgo 例如 hellogo.go 编译成指定目标文件名myfirstgo
go build 后面不带文件名,我们将得到一个与目录名同名的可执行文件 例如app/main.go 则得到app
如果有多个项目,即由多个main..则可指定项目,可在go build
之后加上文件名,例如go build a.go
;
go get
go get 获取远程包的工具,目前go get支持多数开源社区(例如:github、googlecode、bitbucket、Launchpad)
例如 :go get github.com/astaxie/beedb go get -u 参数可以自动更新包,而且当go get的时候会自动获取该包依赖的其他第三方包
go get本质上可以理解为首先第一步是通过源码工具clone代码到src下面,然后执行go install
要想go能够编译本地程序和包,有三个要求:
- Go的bin目录($GOROOT/bin或%GOROOT%\bin)必须在PATH环境变 量下
- 必须存在一个目录,该目录下包含一个src目录,本地程序和包的源码就驻留在src目录下
- 包含src的那个目录必须在GOPATH环境变量中设置
Go编译器的package搜索顺序是这样的,以搜索hello这个package为例:
- 首先,Go编译器会在GO安装目录(GOROOT,这里是/usr/local/go)下查找是否有src/pkg/hello相关包源码;如果没有则继续;
- 若GOPATH=PATH1:PAHT2,则Go编译器会依次查找是否存在PATH1/src/hello、PATH2/src/hello;配置在GOPATH中的PATH1和PATH2被称作workplace;
go install
go install命令除了做了go build所做的事情之外,还将可执行文件放在标准位置($GOPATH/bin或%GOPATH%\bin)。
go install还可编译其他非主程序的包放在pkg目录下
这意味着将一个单一路径($GOPATH /bin或%GOPATH>%\bin)加入到PATH环境变量中,我们安装的所有Go程序就可以方便地被加入到PATH中。 install命令执行后,我们发现main目录下没有任何变化,原先build时产生的main可执行文件也不见了踪影。
别急,前面说过Go install也有一套自己的约定:
- go install编译出的可执行文件文件名为其所在目录名.所以可以把main目录改成你想要的目录名
- go install将可执行文件安装到与src同级别的bin目录下,bin目录由go install自动创建.如果主文件不在src/DIR 子目录下.则不会生成到bin目录下
- go install将可执行文件依赖的各种package编译后,放在与src同级别的pkg目录下
.|-- bin| `-- main.exe|-- pkg| `-- windows_amd64| `-- hello.a`-- src |-- hello | `-- hello.go `-- main `-- main.go
1.go的入口程序,为package main下的main函数..和其所在的包名和文件名无关..即包名,和文件名可以自定义.
2.虽然包名可以自定义,但是尽量保持为main.因为golang不允许同一个目录下有两个不同包名的文件出现,如果app/main.go,app/test.go,test的package为app,则会发生下面的冲突
can't load package: package app: found packages main (main.go) and app (test.go) in /Volumes/Opt/workspace-go/src/app
- golang安装和部署
- Sublime Text3 + Golang 安装与部署
- ubuntu12下安装golang和IDE
- golang入门教程(一) 安装和环境搭建
- golang 1.5/1.6/1.7 安装和配置
- [喵咪Golang(2)]安装和Helloworld
- Golang教程:(一)介绍和安装
- linux 和windows 下golang安装
- golang安装
- Golang安装
- golang 安装
- golang安装
- Golang安装
- golang安装
- golang: beego自动化部署
- 安装和部署
- vs 安装和部署
- 软件安装和部署
- 多web站点统一访问授权管理中心系统项目(源码)
- 斯坦福机器学习-week 3 学习笔记(1)
- vs编译项问题解决
- SQL Server 2008 Support DTS Design
- oracle 系统权限
- golang安装和部署
- nyoj676(大数取模+二分递归)
- 创建普通用户步骤
- MySql: charset 和 collation的设置
- 利用jquery将页面中所有目标为“#‘的链接改为其他URL
- SqlBulkCopy
- oracle中查看用户权限
- UVa 644 - Immediate Decodability解题报告
- 软工中常见的图介绍和比较