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编译和安装一个可运行的应用的流程如下(下面讲的操作是命令行的操作,有助于理解流程):
src下编写应用包mymath(如果在命令行下操作cd $gopath/src 进入编写源码的文件夹,mkdir mymath)
安装应用(两种方法):
- 进入对应的应用包目录(命令行下cd mymath),然后执行go install
- 在任意的目录执行如下代码go install mymath
- 安装完之后,我们可以进入目录:
cd $gopath/pkg/${goos}_${goarch} //pkg存储编译后生成的文件 //可以先cd $gopath/pkg //然后ls 就可以看到${goos}_${goarch}具体是什么,我的是darwin_amd64 //可以看到mymath.a,这个.a文件是应用包
- 调用这个应用包
新建 一个package是main应用包mathapp,import调用mymath,这个就是相对于$gopath/src的路径,如果是多级目录,import里面要引入多级目录(xxx/mymath)
//这时候可以直接go run 文件名.go 运行应用
- 编译程序
进入应用目录(main目录下),执行go build(将程序编译成二进制文件),在该目录下会生成一个mathapp的可执行文件(可以执行ls查看到该可执行文件)
/mathapp 输出结果(运行二进制文件)
安装该应用,进入该目录执行
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
go build命令
这个命令主要用于编译代码。在包的编译过程中,若有必要,会同时编译与之相关联的包。
- 如果是普通包,就像我们在1.2节中编写的mymath包那样,当你执行go build之后,它不会产生任何文件。如果你需要在$gopath/pkg下生成相应的应用包,那就得执行go install。
- 如果是main包,当你执行go build之后,它就会在当前目录下生成一个可执行文件,可直接在当前目录下执行文件。如果你需要在$gopath/bin下生成相应的文件,需要执行go install,或者使用go build -o 路径/a.exe。
- go build命令默认会编译当前目录下的所有go文件。如果某个项目文件夹下有多个文件,只想编译某个文件,就可在go build之后加上文件名,例如go build a.go;
- 你也可以指定编译输出的文件名,默认情况是你的package名(非main包),或者是第一个源文件的文件名(main包)。(注:实际上,package名在go语言规范中指代码中“package”后使用的名称,此名称可以与文件夹名不同。默认生成的可执行文件名是文件夹名。)
go install命令
这个命令在内部实际上分成了两步操作:第一步是生成结果文件(可执行文件或者.a包),第二步会把编译好的结果移到
$gopath/pkg(普通应用包)或者$gopath/bin(可执行应用)。
参考书籍:
上一篇: 微信推送功能实现
推荐阅读
-
Linux 安装JDK Tomcat MySQL的教程(使用Mac远程访问)
-
如何清理电脑上多余的插件 金山卫士清理电脑插件教程
-
MAC下MYSQL5.7.17连接不上的问题及解决办法
-
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
-
win8.1系统总是安装不上支付宝数字证书的解决方法图文教程
-
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
-
怎么把电脑上的视频转换成手机视频?电脑视频转成手机视频教程
-
在windows上安装不同(两个)版本的Mysql数据库的教程详解
-
在Mac上编译安装PHP7的开发环境
-
Linux上安装Python的PIL和Pillow库处理图片的实例教程