编译和安装应用
一、说明
这最后一篇主题中,你讲学习一对新的go命令。当你做频繁的改变,go run
命名是有用的快捷方式对于编译和运行一个程序,它不用产生二进制可执行。
这个主题包含两个额外的命令用于构建代码:
go build
命令编译包,连同它们的依赖,但是不能安装结果;go install
命令,编译并安装包;
二、操作
-
在
hello2
目录的命令行下,运行go build
命令,编译代码称为可执行的二进制。$ ll total 16 drwxr-xr-x 4 lifei staff 128 8 17 23:17 ./ drwxr-xr-x 5 lifei staff 160 8 17 23:14 ../ -rw-r--r-- 1 lifei staff 148 8 17 23:43 go.mod -rw-r--r-- 1 lifei staff 817 8 21 12:50 hello2.go $ go build $ ll total 3760 drwxr-xr-x 5 lifei staff 160 8 21 16:02 ./ drwxr-xr-x 5 lifei staff 160 8 17 23:14 ../ -rw-r--r-- 1 lifei staff 148 8 17 23:43 go.mod -rwxr-xr-x 1 lifei staff 1913936 8 21 16:02 hello2* -rw-r--r-- 1 lifei staff 817 8 21 12:50 hello2.go $
-
在
hello2
目录下命令行,运行新的hello2
可执行文件验证代码的工作。注意,你的结果可能不同,取决于你在测试之后是否改变了
greetings.go
文件。$ ./hello2 map[lifei:Hi, lifei. Welcome! my:Great to see you, my! tw:Hail, tw! Well met! zy:Hi, zy. Welcome!] $
你已经编译了文件成为可执行文件,因此你能运行它。但是要在当前运行它,您的提示需要位于可执行文件的目录中,或者指定可执行文件的路径。
接下来,你将安装可执行文件,以至于你能运行它不需要指定路径。
-
发现Go的安装路径,go 命令将安装当前包的位置。
你能查找安装路径,通过运行
go list
命令,正如下面的例子:$ go list -f '{{.Target}}' /Users/lifei/go/bin/hello2 $
意味着,二进制文件是被安装
/Users/lifei/go/bin/
下。在下一步需要这个安装目录。 -
添加Go安装目录,到你系统的shell 路径。
这种方法,你将能运行你的程序可执行文件,不需要指定可执行文件在哪。
export PATH=$PATH:/Users/lifei/go/bin
作为备选,如果你已经有一个目录像
%HOME/bin
在你的shell路径中,并且你不想安装你的程序到这儿,你能改变安装目的,通过设置GOBIN
参数,使用go env
命令。$ go env -w GOBIN=/path/to/you/bin
-
一旦你更新了你的shell路径,运行
go install
去编译和安装包$ go install $
-
运行你的应用仅仅通过输入它的名字。为了让这更有趣,打开一个新的命令行窗口,运行
hello2
可执行文件名字,在任何目录。因为,执行运行 export命令,是临时的。打开新窗口不起作用。
如果写入
/etc/profile
文件,那就可以在新窗口执行了。$ hello2 map[lifei:Hi, lifei. Welcome! my:Hi, my. Welcome! tw:Great to see you, tw! zy:Hi, zy. Welcome!] $