参考  https://golang.org/doc/install

 

 

 

 

自ECUG2013洗脑回来,就渴望早点接触Go

听着许式伟和谢孟军的演讲

发现go的网络库的确很强大,高负载利器,语言的一些精简导致很容易写出高效代码,而且开发效率  很高 不,应该是非常高   。(rpcjson,xml,.....其他一些自带的库也都很成熟)

 

是不是传说中的好东东,必须自己用了才能知道 

ECUG视频传送们

www.youtube.com/watch?v=af7qOeN9Mvk

 

 

推荐一些相关书籍

学写的话,当然 书籍更系统

 

推荐书籍:

1.英文版《the way to go 》    中文版 《Go语言程序设计》  IVO BALBAERT

2.中文版  《学习Go语言》                        www.mikespook.com/learning-go/

3.  雨痕的               https://github.com/qyuhen/book

6. 《 Network programming with Go》

7. 《Mastering Concurrency in Go - Nathan Kozyra》

 

如果是过web 相关

谢孟军《Go Web编程》https://github.com/astaxie/build-web-application-with-golang/

 

 

查看自己的开发环境:

$lsb_release -a   

Ubuntu 12.04.3 LTS

$uname -a    (or  $cat /proc/version)

Linux 3.8.0-33-generic    gcc version 4.6.3

 

 

 

Operating systemArchitecturesNotes
FreeBSD 8-STABLE or later amd64 Debian GNU/kFreeBSD not supported
Linux 2.6.23 or later with glibc amd64, 386, arm CentOS/RHEL 5.x not supported; install from source for ARM
Mac OS X 10.7 or later amd64 use the clang or gcc that comes with Xcode
Windows XP or later amd64, 386 use MinGW gcc. No need for cygwin or msys.

 

golang支持交叉编译,也就是说你在32位平台的机器上开发,可以编译生成64位平台上的可执行程序。

环境变量说明:
$GOROOT  指向golang安装之后的根目录,windows平台下默认为c:\go,会在安装过程中由安装程序自动写入系统环境变量。
$GOARCH  目标平台(编译后的目标平台)的处理器架构(386、amd64、arm)
$GOOS     目标平台(编译后的目标平台)的操作系统(darwin、freebsd、linux、windows)
$GOBIN     指向安装之后根目录下的bin目录,即$GOROOT/bin,windows平台下 MSI安装路径 默认为c:\go\bin,会在安装过程中由安装程序自动添加到PATH变量中

 

以上   GOARCH ,  GOOS     都可以默认不设置

 

 

Go语言交叉编译,运行在不同的操作系统

若用的Mac 64位,需要编译一个Windows 32位的可执行程序,一句搞定 “CGO_ENABLED=0 GOOS=windows GOARCH=386 go build”

CGO_ENABLED设置是否需要使用CGO,本例子不需要,设置为0,如果需要使用CGO编译,设置为1

 

 

 

 

 

linux 安装golang=================

2种安装方式

1. https://code.google.com/p/go/downloads/list  

直接下载 go1.2.linux-amd64.tar.gz

解压命令 tar -zxvf go1.2.linux-amd64.tar.gz

 

PS.还有源码包   go1.2.src.tar.gz(作为码农,不看源码怎么行,关于语言有疑问的可以直接看代码 :D )

         

2.命令行下载 

$hg clone -u release https://code.google.com/p/go


然后运行bash脚本安装

$cd go/src
$./all.bash

运行all.bash后出现"ALL TESTS PASSED"字样时才算安装成功。

(当然apt-get install golang 最简单)

假设解压到了$HOME/go中

 

 

系统级别

$cd /etc

$cat /etc/.profile

$ll  看此文件的权限

$sudo /etc/.profile

 

 

用户级别

$cat $HOME/.profile      意思一样$cat ~/.profile  ($HOME/.profile 或者 $HOME/.bashrc 都可以添加 一下环境变量)

 

参考:

 https://en.wikipedia.org/wiki/Bash_%28Unix_shell%29

 

 

http://blog.csdn.net/chenchong08/article/details/7833242

 

 

http://bbs.chinaunix.net/thread-1924583-1-1.html

 

 

 

export GOROOT=$HOME/go
export GOBIN=$HOME/go/bin
export PATH=$PATH:$GOROOT/bin

source $HOME/.profile或者$HOME/.bashrc 更新配置

 具体参考http://godoc.golangtc.com/doc/install/source

 

然后是工作目录,代码放在这个目录中

$ export GOPATH=$HOME/workproject




PS. arm树莓派的话,也是可以编译执行的(内置gcc交叉编译工具) 和linux 一样设置,只不过,需要设置$GOARCH 为arm,$GOOS



如果万一你配置文件修改错误,导致ls, vim 等bash命令无效。直接用export可以临时恢复。
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin  
执行完以上的命令后,

你可以重新执行 source /etc/profile 或者 source ~/.bashrc 命令来让你的配置文件永久恢复生效


 ===============================================

 

 

windows 安装go,  如果要用CGO,需要安装MINGW ( 因为需要gcc)========

默认路径是c:\go

 

1>.环境变量

    1.1>MSI环境变量已经设置OK,

    1.2>zip 需要自己设置环境变量

        全局变量

       添加

       GOROOT     c:\go

       GOBIN         c:\go\bin

       GOPATH      d:\workproject

 

       然后在path 在后面添加   xxxxxx;%GOROOT%;%GOBIN%;%GOPATH%;

 

【若成功,可以看到以下version信息】

C:\go\>go version
go version go1.5.1 windows/amd64

 

 

2>.编译

      然后管理员权限启动cmd,

     进入【GOROOT  目录】  编译/test/helloworld.go

 然后试下编译  go build helloworld.go

【若成功,可以看到以下信息】

hello world

 

关于IDE

推荐下 国人开发的 liteide

配合IDE的话,载入*.go文件后,  点击【编辑当前环境】

# native compiler windows

GOROOT=c:\go\
GOBIN= c:\go\bin\
GOARCH=amd64
GOOS=windows
#CGO_ENABLED=1
PATH=c:\mingw32\bin;%GOROOT%\bin;%PATH%
#LITEIDE_GDB=gdb
LITEIDE_MAKE=mingw32-make
LITEIDE_TERM=%COMSPEC%
LITEIDE_TERMARGS=
LITEIDE_EXEC=%COMSPEC%
LITEIDE_EXECOPT=/C

==============

 

点击编译,运行 就可以看到结果了。

 

 

 

 

 

 

    1.5以上版本以为 使用了自举,所以需要用老版本的go 来编译新版本,所以出现如下错误

=================

C:\go\src>all.bat
##### Building Go bootstrap tool.
cmd/dist
ERROR: Cannot find C:\Users\scott\Go1.4\bin\go.exe
"Set GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4."

==================

解决办法: 下载1.4.x 版本的go 后(是需要MINGW gcc 编译1.5的代码), 设置GOROOT_BOOTSTRAP,GOROOT_BOOTSTRAP\bin,

 

       GOROOT_BOOTSTRAP     c:\go

然后运行all.bat,就可以得到新版本, 再把go目录名字改下go1.4, go1.6改成go

自举

C:\go\src>make.bat

 

===========================

 

 

linux 可以参考以下网页

http://mikespook.com/2015/06/如何从源代码构建-go-1-5-开发环境/

 

 

 

 

 卸载也是很重要的,(可以通过go env 来了解GOROOT...信息 , 卸载也就知道在哪了)

 

Uninstalling Go

go/usr/local/goc:\Go
binPATH/etc/profile$HOME/.profile/etc/paths.d/go

 

$go version  我是ubuntu14.04 默认安装的go1.2.1版本

$go env 查看之前版本的go 的GOROOT、GOTOOLDIR、GOPATH等信息

 

 

默认安装版本 需要删除

1. /usr/lib/go

2. /usr/share/go

3. /usr/bin/go

 

然后更新自己的新版本的go环境变量 就可以了

go version

go env

都正常了

 

 

 

 =================

 

linux 用go1.4自举编译go1.7

1.添加环境变量

vim ~/.bashrc

export GOROOT=/usr/local/go
export GOBIN=$GOROOT/bin
export PATH=$PATH:$GOROOT/bin
export GOPATH=$HOME/goWorkproject

export GOROOT_BOOTSTRAP=/usr/local/go1.4

更新环境变量  source ~/.bashrc

2.进入go1.7的目录  /usr/local/go

cd go/src/

运行 ./make.bash

.......

Installed Go for linux/amd64 in /usr/local/go
Installed commands in /usr/local/go/bin

 

查询版本

root@iZ25290crlqZ:/usr/local/go/src# go version
go version go1.7 linux/amd64

 

OK就算完成了。

 

http://studygolang.com/topics/1852