mac 安装和运行go的helloword

来源:互联网 发布:掌上电力提示网络问题 编辑:程序博客网 时间:2024/05/22 09:49

哈哈,好激动,又接触到一门强大的语言,简单记录下在mac上运行第一个程序遇到的问题。

Hello Word 示例,pkg安装包: wget https://storage.googleapis.com/golang/go1.2.2.darwin-amd64-osx10.8.pkg,下载后,需要设置环境变量才ok哦,如,我的

bash_profile文件,

GOARCH="386"  # 386是来自 uname -p 获取的哦

GOBIN=""

GOCHAR="6"

GOEXE=""

GOHOSTARCH="386" # 386是来自 uname -p 获取的哦

GOHOSTOS="darwin"

GOOS="darwin"

GOPATH=""

GORACE=""

GOROOT="/usr/local/go"

GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"

TERM="dumb"

CC="clang"

GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fno-common"

CXX="clang++"

CGO_ENABLED="1"

source bash_profile即可;

如果在build时出现类似下面的错误(go build runtime: darwin/amd64 must be bootstrapped using make.bash),可以尝试如下命令,再次编译:
$ GOOS=darwin GOARCH=amd64 go build -x -o testport_linux hello.go 
WORK=/var/folders/vp/f5r3wgld1w133srlbyd4190m0000gn/T/go-build683397936
mkdir -p $WORK/command-line-arguments/_obj/
cd /Users/jake/rdd/golang
/usr/local/go/pkg/tool/darwin_amd64/6g -o $WORK/command-line-arguments/_obj/_go_.6 -p command-line-arguments -complete -D _/Users/jake/rdd/golang -I $WORK ./hello.go
/usr/local/go/pkg/tool/darwin_amd64/pack grcP $WORK $WORK/command-line-arguments.a $WORK/command-line-arguments/_obj/_go_.6
cd .
/usr/local/go/pkg/tool/darwin_amd64/6l -o testport_linux -L $WORK $WORK/command-line-arguments.a
我们发现Go实际上用的是$GOROOT/pkg/tool/linux_amd64下的6g(编译器)和6l(链接器)来完成整个编译过程的,看到6g 和6l所在目录名为linux_amd64,我们可以大胆猜测编译darwin/amd64 go程序应该使用的是$GOROOT/pkg/tool/darwin_amd64下的工具。不过在我在$GOROOT/pkg/tool下没有发现 darwin_amd64目录,也就是说我们通过安装包安装的Go仅自带了for linux_amd64的编译工具,要想交叉编译出for darwin_amd64的程序,我们需要通过make.bash来手工编译出这些工具。
根据make.bash的用法说明,我们来尝试构建一下:


cd $GOROOT/src
sudo GOOS=darwin GOARCH=amd64 ./make.bash


编译后,我们再来试试编译for darwin_amd64的程序:


$ GOOS=darwin GOARCH=amd64 go build -x -o test_darwin hello.go


此时,如果在当前目录生成了test_darwin文件,那就执行,看下久违的hello world。那就修改环境变量:
 $ export GOARCH=amd64


0 0