mac上go的下载安装教程

官网https://golang.google.cn/dl/下载,安装

环境变量配置

参考https://www.jianshu.com/p/5c1873eaf3ca

  • Bash

编辑~/.bash_profile文件(vim ~/.bash_profile,进入vim的正常模式,在正常模式中按下i, I, a, A等,进入插入模式),添加以下代码

export GOROOT=/usr/local/Cellar/go/1.10.3/libexec
//GOROOT是golang的安装路径,不需要配置,安装golang之后就已经有了 export GOPATH=/Users/chenxingyi/work/go
//GOPATH不是安装目录,并且不能和Go的安装目录一样
//可以配置多个GOPATH,多个GOPATH之间用 : 隔开
//例如:export //GOPATH=/Users/chenxingyi/work/goUsers/chenxingyi/work1/go
//配置结束可以在通过以下几种方式查询GOPATH
//1.在命令行输入 echo $GOPATH
//2.cd $GOPATH 进入GOPATH目录,pwd显示当前所在目录
//3.在配置文件中查看 export GOBIN= export PATH=$PATH:${GOPATH//://bin:}/bin
//bin 编译后生成的可执行文件,为了方便执行可执行文件
//可以把此目录加入到 $PATH 变量中
//如果有多个gopath,那么使用${GOPATH//://bin:}/bin添加所有的bin目录)

保存(在正常模式中,按下:(冒号)键,会进入命令模式,输入wq保存文件),然后执行

source ~/.bash_profile
  • Zsh

编辑~/.zshrc文件,添加以下代码

export GOROOT=/usr/local/Cellar/go/1.10.3/libexec

export GOPATH=/Users/chenxingyi/work/go

export GOBIN=

export PATH=$PATH:${GOPATH//://bin:}/bin

保存,然后执行

source ~/.zshrc

go编译和安装一个可运行的应用

  • GOPATH目录下约定有三个子目录:src(存放源代码)、pkg(存放编译后生成的文件)、bin(编译后生成的可执行文件)

  • 在go中,目录名(dirctory)一般和包名(package)保持一致,package是main表示可执行应用;package是其他表示应用包

  • 多级目录情况下包的引用:$GOPATH/src/github.com/astaxie/beedb 引用的路径:”github.com/astaxie/beedb”,即相对路径

    go编译和安装一个可运行的应用的流程如下(下面讲的操作是命令行的操作,有助于理解流程):

  1. src下编写应用包mymath(如果在命令行下操作cd $GOPATH/src 进入编写源码的文件夹,mkdir mymath)

  2. 安装应用(两种方法):

    1. 进入对应的应用包目录(命令行下cd mymath),然后执行go install

    2. 在任意的目录执行如下代码go install mymath

  3. 安装完之后,我们可以进入目录:

    cd $GOPATH/pkg/${GOOS}_${GOARCH}
    //pkg存储编译后生成的文件
    //可以先cd $GOPATH/pkg
    //然后ls 就可以看到${GOOS}_${GOARCH}具体是什么,我的是darwin_amd64
    //可以看到mymath.a,这个.a文件是应用包
  4. 调用这个应用包

    新建 一个package是main应用包mathapp,import调用mymath,这个就是相对于$GOPATH/src的路径,如果是多级目录,import里面要引入多级目录(xxx/mymath),这时候可以直接go run 文件名.go 运行应用

  5. 编译程序

    进入应用目录(main目录下),执行go build(将程序编译成二进制文件),在该目录下会生成一个mathapp的可执行文件(可以执行ls查看到该可执行文件)

  6. /mathapp 输出结果(运行二进制文件)

  7. 安装该应用,进入该目录执行go install,那么在"$GOPATH/bin/"下增加了一个可执行文件mathapp。设置环境变量的时候将GOPATH/bin加到我们的PATH里面了,这样可以在命令行输入如下命令就可以执行可执行文件mathapp

go程序的整体结构

bin/

​	mathapp

pkg/

​	平台名/ 如:darwin_amd64、linux_amd64

​		 mymath.a

​		 github.com/

​			  astaxie/

​				   beedb.a

src/

​	mathapp

​		  main.go

​	mymath/

​		  sqrt.go    

go获取远程包

go有一个获取远程数据包的工具go get,本质上可以理解为第一步是通过源码工具clone代码到src下面,然后执行 go install

go get -u 例:go get github.com/astaxie/beedb

go build命令

这个命令主要用于编译代码。在包的编译过程中,若有必要,会同时编译与之相关联的包。

  1. 如果是普通包,就像我们在1.2节中编写的mymath包那样,当你执行go build之后,它不会产生任何文件。如果你需要在$GOPATH/pkg下生成相应的应用包,那就得执行go install。
  2. 如果是main包,当你执行go build之后,它就会在当前目录下生成一个可执行文件,可直接在当前目录下执行文件。如果你需要在$GOPATH/bin下生成相应的文件,需要执行go install,或者使用go build -o 路径/a.exe。
  3. go build命令默认会编译当前目录下的所有go文件。如果某个项目文件夹下有多个文件,只想编译某个文件,就可在go build之后加上文件名,例如go build a.go;
  4. 你也可以指定编译输出的文件名,默认情况是你的package名(非main包),或者是第一个源文件的文件名(main包)。(注:实际上,package名在Go语言规范中指代码中“package”后使用的名称,此名称可以与文件夹名不同。默认生成的可执行文件名是文件夹名。)

go install命令

这个命令在内部实际上分成了两步操作:第一步是生成结果文件(可执行文件或者.a包),第二步会把编译好的结果移到

$GOPATH/pkg(普通应用包)或者$GOPATH/bin(可执行应用)。

参考书籍:https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/preface.md

Mac上go的下载安装教程的更多相关文章

  1. VMWare上Linux系统下载安装教程

    原文链接:http://www.studyshare.cn/blog-front//software/details/1162/0 一.下载 linux镜像文件下载,此处只提供CentOS 6.8版本 ...

  2. Anaconda是什么?Anconda下载安装教程(1)

    一.如果从事Python开发,配置环境需要安装两个包: 第一个安装开发工具,俗称IDE : 推荐使用 Pycharm 第二个安装开发工具包: Anaconda ps:Windows 下 Pycharm ...

  3. Anaconda是什么?Anconda下载安装教程(1)

    一.如果从事Python开发,配置环境需要安装两个包: 第一个安装开发工具,俗称IDE : 推荐使用 Pycharm 第二个安装开发工具包: Anaconda ps:Windows 下 Pycharm ...

  4. Cygwin下载,安装教程

    Cygwin是一个用于在Windows上模拟Linux环境的软件,由于工作上的需要,我要使用它,至于为什么用它,我在这里不做过多的解释,本文的目的,旨在于解决Cygwin安装上的问题. 原始的安装Cy ...

  5. axure7.0下载安装教程

    做产品必需要有原型设计.我们公司称为做demo. demo你能够用ppt做,或者直接做图片.这样给甲方基本通只是. 也能够直接用html做,这样非常慢.尽管真正研发时或许能够复用: 平衡的方案,也是最 ...

  6. Adobe Photoshop CC 2019 for Mac v20.0.4 中文版安装教程

    全新Adobe Photoshop CC 2019 mac特别版终于上线了,简称ps cc 2019,Adobe Photoshop CC 2019 for Mac v20.0.4 中文版安装教程分享 ...

  7. 如何在 Mac 上通过 Boot Camp 安装 Windows?

    如何在 Mac 上通过 Boot Camp 安装 Windows? The following contents are chosen from the apple website, thanks f ...

  8. nodejs下载安装教程(XP版)

    Node.js 下载安装教程(XP版) 参考自:https://www.cnblogs.com/zhouyu2017/p/6485265.html(win10版) 一.安装环境 Windows Xp( ...

  9. MySQL 8.0.13(Windows压缩版本)下载安装教程

    MySQL下载安装教程 1.首先在百度上搜索mysql 2.点击链接进去,找到对应的路径 3.进去之后,可以看到版本是8.0.13,以及最下面有个Download按钮,点击下载 4.之后会跳转到开始下 ...

随机推荐

  1. DOM内容梳理2

    JavaScript-DOM2(内容整理) 这两天新的知识有点多有点杂一时半会没有整理过来,以后不出意外会一直更行. js节点类型(NODETYPE) 查看节点类型 nodetype属性,返回的结果会 ...

  2. 文件搜索命令find

    1.路径加文件名搜索(find): 查找的是etc目录下的以init为名字的文件. 加通配符后为模糊搜索,只要文件名中含有init即可. 查找etc目录下以init开头的七位文件名. 2.搜索时不区分 ...

  3. Linux常用命令合集

    常用命令合集 命令选项和参数 Linux中的命令格式为:command [options] [arguments]  //中括号表示可选的,即有些命令不需要选项也不需要参数,但有的命令在运行时需要多个 ...

  4. 使用nginx 正向代理暴露k8s service && pod ip 外部直接访问

    有时在我们的实际开发中我们希望直接访问k8s service 暴露的服务,以及pod的ip 解决方法,实际上很多 nodeport ingress port-forword 实际上我们还有一种方法:正 ...

  5. rbenv mac&&linux 安装简单说明

    mac 可以通过brew linux 官方提供了运行脚本 # with curl curl -fsSL https://github.com/rbenv/rbenv-installer/raw/mas ...

  6. circus 做为批处理的守护进程

    circus 是集成了zeromq,使用python编写的一个进程以及socket 管理工具,使用circus 的进程管理,我们可以用来进行批任务的 处理,同时又能保证任务的准确 项目使用docker ...

  7. c博客06-结构

    1.本章学习总结(2分) 1.1 学习内容总结 结构体如何定义.成员如何赋值 结构体数组排序做法 结构体指针怎么用 共用体.枚举类型做法 文件读写,文件中数据如何读进结构体数组 1.2 本章学习体会 ...

  8. Codeforces Round #595 (Div. 3)

    A - Yet Another Dividing into Teams 题意:n个不同数,分尽可能少的组,要求组内没有两个人的差恰为1. 题解:奇偶分组. int a[200005]; void te ...

  9. QML学习(三)——<QML命名规范>

    QML对象声明 QML对象特性一般使用下面的顺序进行构造: id 属性声明 信号声明 JavaScript函数 对象属性 子对象 状态 状态切换 为了获取更好的可读性,建议在不同部分之间添加一个空行. ...

  10. webpack系列之安装(Mac OS)

    1. webpack介绍,可参考Webpack中文文档 2. 安装webpack之前先需要安装npm,可参看NPM的使用介绍 3. 安装webpack,可参考Webpack入门教程 ========= ...