Ubuntu下搭建Golang开发环境
Golang安装及配置
下载安装文件,当前最新版本为1.4.2,go1.4.2.linux-amd64.tar.gz 。
将安装文件解压至指定目录:
1 # sudo tar -zxvf go1.4.2.linux-amd64.tar.gz -C /usr/local/
编辑 /etc/profile 文件添加环境变量:
export GOROOT=/usr/local/go export GOBIN=$GOROOT/bin export PATH=$PATH:$GOBIN export GOPATH=$HOME/goproj
重新编译 /etc/profile 文件,并尝试查看GO版本:
1 # source /etc/profile 2 # go version
Golang交叉编译
新建 hello.go 文件,内容如下:
1 package main 2 3 import ( 4 "fmt" 5 ) 6 7 func main() { 8 fmt.Println("Hello Golang!") 9 }
Go安装包中只打包了相应平台下的编译工具,为实现交叉编译,需要手动生成其他平台的编译工具。下面将生成 windows 64位编译器,打开 /usr/local/go/src/ ,执行如下代码,GOOS表示目标系统类型,GOARCH说明目标系统是32位(386)或64位(amd64):
1 # sudo GOOS=windows GOARCH=amd64 ./make.bash
命令执行成功后,会在 /usr/local/go/pkg/ 下生成相应平台的编译工具。
接下来在LiteIDE中选择相应的目标平台,编译GO程序代码,结果如下:
最后附上各平台GOOS和GOARCH参考:
GOOS | GOARCH | OS |
linux | 386/amd64/arm | >= Linux2.6 |
darwin | 386/amd64 | OS X (Snow Leopard + Lion) |
freebsd | 386/amd64 | >= FreeBSD 7 |
windows | 386/amd64 | >= Windows 2000 |
注:64位CentOS编译Linux32位程序异常
# runtime/cgo 在包含自 /usr/include/features.h:385 的文件中, 从 /usr/include/errno.h:29, 从 /usr/local/go/src/runtime/cgo/cgo.go:46: /usr/include/gnu/stubs.h:7:27: 错误:gnu/stubs-32.h:没有那个文件或目录
解决方法:
# yum install glibc-devel.i686
如果提示不能找到 -lgcc.s时,安装 libgcc.i686即可。