zoukankan      html  css  js  c++  java
  • go 命令

    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()
    }
    
  • 相关阅读:
    样式问题
    布局
    通用模板实现可变参数函数
    使用单例模式实习string类
    动态生成一维数组和二维数组
    自定义的类传数据到主窗口控件上的方法
    使用TableView
    G480折腾上了黑苹果,完美了,哈哈
    error C2383: 此符号中不允许有默认参数
    动态链接库的隐式动态链接和显示动态链接
  • 原文地址:https://www.cnblogs.com/shhnwangjian/p/8447945.html
Copyright © 2011-2022 走看看