Go 命令行工具 (Gotool)
go version
go help
build compile packages and dependencies
clean remove object files
doc run godoc on package sources
fix run go tool fix on packages
fmt run gofmt on package sources
get download and install packages and dependencies
install compile and install packages and dependencies
list list packages
run compile and run Go program
test test packages
tool run specified go tool
version print Go version
vet run go tool vet on packages
Gotool可以帮你完成以下这几类工作:
代码格式化
代码质量分析和修复
单元测试与性能测试
工程构建
代码文档的提取和展示
依赖包管理
执行其他的包含指令,比如6g等
2 代码风格
格式化功能美化一下 go fmt hello.go
3 远程 import 支持
package main
import (
"fmt"
"github.com/myteam/exp/crc32"
)
go get github.com/myteam/exp/crc32
执行完 go get
之后,我们会在 src 目录
中看到 github.com 目录,其中包含
myteam/exp/crc32目录。
在crc32中,就是该包的所有源代码。也就是说,go工具会自动帮你获取位于远程的包源码,在随后的编译中,也会在pkg目录中生成对应的.a文件。
4 工程组织
GOPATH
能定位到对应的源代码, 可以在任意位置对 工程进行构建
export GOPATH=~/work/go-proj1:~/work2/goproj2:~/work3/work4/go-proj3
目录结构
<calcproj>
├─README
├─AUTHORS
├─<bin>
├─calc
├─<pkg>
└─<linux_amd64>
└─simplemath.a
├─<src>
├─<calc>
└─calc.go
├─<simplemath>
├─add.go
├─add_test.go
├─sqrt.go
├─sqrt_test.go
一个标准的Go语言工程包含以下几个目录:src
、pkg
和bin
。
目录src用于包含所有的源代码,是Gotool一个强制的规则,
而pkg和bin则无需手动创建,如果必要Gotool在构建过程中会自动创建这些目录
#### 5 跨平台编译
Window
s 下编译 Mac
和 Linux
64位可执行程序
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build main.go
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build main.go
GOOS
: 目标平台的操作系统
(darwin、freebsd、linux、windows)
GOARCH
:目标平台的体系架构
(386、amd64、arm)
6 go build
和 go install
go build : 编译出可执行文件
go install : go build + 把编译后的可执行文件放到GOPATH/bin目录下
go get : git clone + go install