./src/chapter11/gobuild
。
代码相对于 GOPATH 的目录关系如下:
.
└── src
└── chapter11
└── gobuild
├── lib.go
└── main.go
package main import ( "fmt" ) func main() { // 同包的函数 pkgFunc() fmt.Println("hello world") }lib.go 代码如下:
package main import "fmt" func pkgFunc() { fmt.Println("call pkgFunc") }如果源码中没有依赖 GOPATH 的包引用,那么这些源码可以使用无参数 go build。格式如下:
go build
在代码所在目录(./src/chapter11/gobuild
)下使用 go build 命令,如下所示:
$ cd src/chapter11/gobuild/
$ go build
$ ls
gobuild lib.go main.go
$ ./gobuild
call pkgFunc
hello world
go build file1.go file2.go……
在代码代码所在目录(./src/chapter11/gobuild)中使用 go build,在 go build 后添加要编译的源码文件名,代码如下:
$ go build main.go lib.go
$ ls
lib.go main main.go
$ ./main
call pkgFunc
hello world
$ go build lib.go main.go
$ ls
lib lib.go main main.go
-o
参数,参见下面的例子:
$ go build -o myexec main.go lib.go
$ ls
lib.go main.go myexec
$ ./myexec
call pkgFunc
hello world
-o myexec
参数,表示指定输出文件名为 myexec。
./src/chapter11/goinstall
。
相对于GOPATH的目录关系如下:
.
└── src
└── chapter11
└──goinstall
├── main.go
└── mypkg
└── mypkg.go
package main import ( "chapter11/goinstall/mypkg" "fmt" ) func main() { mypkg.CustomPkgFunc() fmt.Println("hello world") }mypkg.go代码如下:
package mypkg import "fmt" func CustomPkgFunc() { fmt.Println("call CustomPkgFunc") }
$ export GOPATH=/home/davy/golangbook/code
$ go build -o main chapter11/goinstall
$ ./goinstall
call CustomPkgFunc
hello world
-o
执行指定输出文件为 main,后面接要编译的包名。包名是相对于 GOPATH 下的 src 目录开始的。附加参数 | 备 注 |
---|---|
-v | 编译时显示包名 |
-p n | 开启并发编译,默认情况下该值为 CPU 逻辑核数 |
-a | 强制重新构建 |
-n | 打印编译时会用到的所有命令,但不真正执行 |
-x | 打印编译时会用到的所有命令 |
-race | 开启竞态检测 |
本文链接:http://task.lmcjl.com/news/17990.html