Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 19 additions & 19 deletions 01.2.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@
*(注:这个不是Go安装目录。下面以笔者的工作目录为说明,请替换自己机器上的工作目录。)*

在类似 Unix 环境大概这样设置:

```sh
export GOPATH=/home/apple/mygo

```
Windows 设置如下,新建一个环境变量名称叫做GOPATH:

```sh
GOPATH=c:\mygo

```
GOPATH允许多个目录,当有多个目录时,请注意分隔符,多个GOPATH的时候Windows是分号,Linux系统是冒号,当有多个GOPATH时,默认会将go get的内容放在第一个目录下


Expand All @@ -30,12 +30,12 @@ GOPATH允许多个目录,当有多个目录时,请注意分隔符,多个GO
以后自己新建应用或者一个代码包都是在src目录下新建一个文件夹,文件夹名称代码包名称,当然也允许多级目录,例如在src下面新建了目录$GOPATH/src/github.com/astaxie/beedb 那么这个包名称就是“github.com/astaxie/beedb”

执行如下代码

```sh
cd $GOPATH/src
mkdir mymath

```
新建文件sqrt.go,内容如下

```go
// $GOPATH/src/mymath/sqrt.go源码如下:
package mymath

Expand All @@ -46,7 +46,7 @@ GOPATH允许多个目录,当有多个目录时,请注意分隔符,多个GO
}
return z
}

```
这样我的应用包目录和代码已经新建完毕,注意:package的名称必须和目录名保持一致

## 编译应用
Expand All @@ -57,24 +57,24 @@ GOPATH允许多个目录,当有多个目录时,请注意分隔符,多个GO
2、在任意的目录执行如下代码`go install mymath`

安装完之后,我们可以进入如下目录

```sh
cd $GOPATH/pkg/${GOOS}_${GOARCH}
//可以看到如下文件
mymath.a

```
这个.a文件是应用包,相当于一个函数库一样,那么我们如何进行调用呢?

接下来我们新建一个应用程序来调用

新建应用包mathapp

```sh
cd $GOPATH/src
mkdir mathapp
cd mathapp
vim main.go

```
// `$GOPATH/src/mathapp/main.go`源码:

```go
package main

import (
Expand All @@ -85,19 +85,19 @@ GOPATH允许多个目录,当有多个目录时,请注意分隔符,多个GO
func main() {
fmt.Printf("Hello, world. Sqrt(2) = %v\n", mymath.Sqrt(2))
}

```
如何编译程序呢?进入该应用目录,然后执行`go build`,那么在该目录下面会生成一个mathapp的可执行文件

```sh
./mathapp

```
输出如下内容

```sh
Hello, world. Sqrt(2) = 1.414213562373095

```
如何安装该应用,进入该目录执行`go install`,那么在$GOPATH/bin/下增加了一个可执行文件mathapp,这样可以在命令行输入如下命令就可以执行

mathapp

也是输出如下内容

Hello, world. Sqrt(2) = 1.414213562373095
Expand Down