• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

go 命令

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

go build

go build,是我们非常常用的命令,它可以启动编译,把我们的包和相关的依赖编译成一个可执行的文件。

go help build 帮助命令

go build
go build .
go build test.go

以上这三种写法,都是使用当前目录编译的意思。因为我们忽略了packages,所以自然就使用当前目录进行编译。

go build shhnwagjian.com.cn/tools

这种方式是指定包的方式,这样会明确的编译我们这个包。

go build shhnwangjian.com.cn/tools/...

3个点表示匹配所有字符串,这样go build就会编译tools目录下的所有包。

Go提供了编译链工具,可以让我们在任何一个开发平台上,编译出其他平台的可执行文件。

默认情况下,都是根据我们当前的机器生成的可执行文件,比如你的是Linux 64位,就会生成Linux 64位下的可执行文件,可以使用go env查看编译环境,以下截取重要的部分。

两个重要的环境变量GOOS和GOARCH,其中GOOS指的是目标操作系统。GOOS和GOARCH组合起来,支持生成的可执行程序种类很多,具体组合参考如下

https://golang.org/doc/install/source#environment

官方介绍:

Choices for $GOOS are darwin (Mac OS X 10.8 and above and iOS), dragonflyfreebsdlinuxnetbsdopenbsd,plan9solaris and windows.

Choices for $GOARCH are amd64 (64-bit x86, the most mature port), 386 (32-bit x86), arm (32-bit ARM), arm64 (64-bit ARM), ppc64le (PowerPC 64-bit, little-endian), ppc64 (PowerPC 64-bit, big-endian), mips64le (MIPS 64-bit, little-endian), and mips64 (MIPS 64-bit, big-endian). mipsle (MIPS 32-bit, little-endian), and mips (MIPS 32-bit, big-endian). 

GOOS=linux GOARCH=amd64 go build flysnow.org/hello

上面命令生成linux 64位的程序。

除了GOOS和GOARCH常用,在实际开发中,对于开发出的程序会显示编译时间、go版本等属性,我们会用到用ldflags设置变量的值

GOOS=linux GOARCH=amd64 go build -ldflags "-X 'main.BUILD_TIME=`date "+%F %T"`' -X 'main.GO_VERSION=`go version`'" .

代码中需要引入变量

var (
	BUILD_TIME string
        GO_VERSION string
)

func usage() {
   fmt.Fprintf(os.Stderr, `Options:
Build Time: %v
Go Version: %v
`, BUILD_TIME, GO_VERSION)
   flag.PrintDefaults()
}

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
WIFIP2PGO与Clien的协商流程发布时间:2022-07-10
下一篇:
GO环境变量设置发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap