搭建Go语言开发环境-优化篇
2012-12-08 14:53 Danny.tian 阅读(3814) 评论(0) 编辑 收藏 举报在上篇搭建Go语言开发环境-基础篇中提到的Go环境变量设置准备在这篇文章中进行一下优化已增加开发效率
之前的环境变量
export GOROOT=$HOME/go export GOBIN=$GOROOT/bin export GOARCH=amd64 export GOOS=linux export PATH=$GOBIN:$PATH export GOPATH=$HOME/goprograms
修改后的环境变量~/.bashrc文件变成了如下这样:
export GOROOT=$HOME/go export PATH=$GOROOT/bin:$PATH
为什么要删除GOBIN GOARCH GOOS呢??
因为系统默认都已经设置好这些变量了,不再需要配置了,除非要在linux下面编译出windows下的可执行文件才需要配置这些变量,我们同样也删除了GOPATH变量,这样Go就不能正常工作了,我们不在这里配置GOPATH的原因主要是避免每次建立新项目都要去改这个参数而是通过make文件的形式来变相满足Go环境的需求,新增加的make文件内容如下:
#!/usr/bin/env bash if [ ! -f make ]; then echo 'make must be run within its container folder' 1>&2 exit 1 fi CURDIR=`pwd` OLDGOPATH="$GOPATH" export GOPATH="$CURDIR" gofmt -tabs=false -tabwidth=4 -w src go install test export GOPATH="$OLDGOPATH" echo 'finished'
运行这个make文件时,其实就是通过脚本的形式去动态改变GOPATH来编译程序,还有一点要注意的就是当运行go install test时Go编译器会去$GOPATH/src/test寻找main文件,运行成功后会生成bin、pkg文件夹,bin文件夹里面包含可执行文件test,如果之前设置了$GOBIN变量的话这个test可执行文件会被生成在$GOBIN所定义的目录下,我们按照下图所示建立一个测试项目,试一下这个make文件
在src/config下建立config.go文件:
package config func LoadConfig() { }
在src/test下建立main.go文件
package main import ( "config" "fmt" ) func main() { config.LoadConfig() fmt.Println("Hello, GO!") }
我们现在运行 ./make 会得到如下目录结构
这时可以看到在bin下面已经生成test文件了,大功告成,以后如果新增加项目也只需把这个make文件复制过去改一下GOPATH路径就ok了,不用每次都修改~/.bashrc了
特别感谢 @polaris 给予的帮助和他的文章