zoukankan      html  css  js  c++  java
  • go build说明

    go build命令的说明

    1. 获取go build说明,重定向输出到文件

    go help build >> go-build-intro.txt
    

    2. 解读go build

    2.1 usage(用法)

    go build [-o output] [build flags] [packages]
    

    build命令会编译由import path命名的包,连同它们的依赖项,但它不会安装结果,就是会编译成可执行文件。而,具体要编译成那种架构或者那种OS上的可执行文件则由[build flags]进行定义。such as:GOOS=linux GOARCH=amd64

    如果构建的参数是来自单个目录的 .go 的文件列表,build 命令执行时,将它们视为指定单个包的源文件列表。(就是把他们作为一个package,所以这些.go文件的package名字一定要一致,不然会报错)

    注意:_test.go结尾的go源码文件会在编译的时候被忽略,所以测试性的代码的文件名可以这么结尾,从而避免编译检查!

    2.2 build说明

    编译单个package main时,build 将生成的可执行文件写入以第一个源文件命名的输出文件('go build ed.go rx.go' 写入 'ed' 或 'ed.exe')或源代码目录( 'go build unix/sam' 写入 'sam' 或 'sam.exe')。编写 Windows 可执行文件时会添加“.exe”后缀,linux下没有后缀,这是二进制可执行文件。

    这里注意一种build的写法,同一个package下,.go文件存在方法调用,这个时候go build的写法要么直接go build .,要么go build A.go B.go ...,只写入口 的go文件是会报undefined错。

    当编译多个包或单个非主包时, build 编译包但丢弃生成的对象,仅用作检查包是否可以构建。

    2.3 build flags说明

    -i 标志安装作为目标依赖项的包。不推荐使用-i 标志。 编译的包会自动缓存。不过IDE goland默认好像是有这个的,所以建议手动删除-i

    build flags包括build构建、clean清理、get获取、install安装、list列出、run运行、和test测试命令。

    flag describe
    -a 强制重建已经是最新的包
    -n 打印命令但不运行它们
    -p n 可以并行运行的程序数量,例如构建命令或测试二进制文件。
    默认值是可用的 CPU 数量。使用-p来指定一个数字。
    -race 启用“数据争用”检测(与多线程编程有关)
    Supported only on linux/amd64, freebsd/amd64, darwin/amd64,
    windows/amd64, linux/ppc64le and linux/arm64 (only for 48-bit VMA)
    -msan 启用与内存清理器的互操作。
    Supported only on linux/amd64, linux/arm64 and
    only with Clang/LLVM as the host C compiler.
    On linux/arm64, pie build mode will be used.
    -v 在编译时打印包的名称
    -work 打印临时工作目录的名称,退出时不会删除它
    -x 打印命令
    -asmflags '[pattern=]arg list' 传递每个 go tool asm 调用的参数。
    -buildmode mode build mode to use. See 'go help buildmode' for more.
    -buildmode=archive
    -buildmode=c-archive
    -buildmode=c-shared
    -buildmode=efault
    -buildmode=shared
    -buildmode=exe
    -buildmode=pie
    -buildmode=plugin
    -compiler name 要使用的编译器的名称,如 runtime.Compiler(gccgo 或 gc)
    -gccgofags '[pattern=]arg list' 传递每个 gccgo 编译器/链接器调用的参数。
    -gcflags '[pattern=]arg list' 传递每个 go 工具, 编译调用的参数。
    -installsuffix suffix 在包安装目录的名称中使用的后缀,以便将输出与默认构建分开。
    If using the -race flag, the install suffix is automatically set to race or, if set explicitly,
    has _race appended to it. Likewise for the -msan flag.
    Using a -buildmode option that requires non-default compile flags has a similar effect.
    -ldflags '[pattern=]arg list' 传递每个 go 工具,链接调用的参数
    -linkshared 将链接到先前使用 -buildmode=shared 创建的共享库的构建代码。
    -mod mode module download mode to use: readonly, vendor, or mod.
    -modcacherw 将新创建的目录保留在模块缓存中读写,而不是将它们设为只读。
    -modfile file
    -overlay file
    -pkgdir dir
    -tags tag,list
    -trimpath
    -toolexec 'cmd args'

    See also: go install, go get, go clean.

  • 相关阅读:
    点击按钮,回到页面顶部的5种写法
    node知识积累
    Python3基础 str ljust-rjust-center 左、右对齐 居中
    Python3基础 str : 对字符串进行切片
    Python3基础 str : 字符串的逆序
    Python3基础 str __add__ 拼接,原字符串不变
    Python3基础 运算 加减乘除、取余数
    Python3基础 只有int类型,没有long类型
    Python3基础 complex 声明复数
    Python3基础 complex real imag __abs__ 取复数的实部 虚部 模
  • 原文地址:https://www.cnblogs.com/yspworld/p/15118866.html
Copyright © 2011-2022 走看看