Golang 常用命令

安装完 Go 运行环境后,可以在命令行中执行 go,查看 Golang 中的常用命令,具体如下:


webpiece@1205 hello % go
Go is a tool for managing Go source code.

Usage:
        go <command> [arguments]

The commands are:
        bug         start a bug report
        build       用于编译指定的源文件或代码包及其依赖         // 跨平台编译
        clean       可以删除掉执行其他指令时,产生的一些文件和目录
        doc         show documentation for package or symbol
        env         打印 GO 语言的环境信息
        fix         update packages to use new APIs 把指定代码包的所有 Go 语言源码文件中的旧版本代码修正为新版本的代码
        fmt         gofmt (reformat) package sources
        generate    generate Go files by processing source
        get         根据要求和实际情况从网上下载或更新指定的代码包及其依赖,并对它们进行编译和安装
        install     compile and install packages and dependencies
        list        list packages or modules 列出指定的代码包的信息
        mod         module maintenance
        work        workspace maintenance
        run         可以编译并运行 GO 源文件
        test        test packages 用于对 Go 语言编写的程序进行测试
        tool        run specified go tool 
     // tool pprof  交互式的访问概要文件的内容
        version     print Go version
        vet         report likely mistakes in packages 一个用于检查Go语言源码中静态错误的简单工具

Use "go help <command>" for more information about a command.

go build 之 跨平台编译( 了解 )

默认 go build 的可执行文件,都是当前操作系统可执行的文件;Golang 中,支持跨平台编译,也就是说:

在当前平台( 如,Windows )下,可以编译为其他平台( 如,Linux )的可执行文件


「 Windows 平台 」

  • 编译为 Linux 可执行文件
// 不同终端,命令不一样

(1)如果 Windows 使用的是 CMD,则,按以下方式指定环境变量:
SET CGO_ENABLED=0  // 禁用CGO
SET GOOS=linux  // 目标平台是linux
SET GOARCH=amd64  // 目标处理器架构是amd64

(2)如果 Windows 使用的是 PowerShell,则,环境变量设置的语法为:
$ENV:CGO_ENABLED=0
$ENV:GOOS="linux"
$ENV:GOARCH="amd64"

// 在 Windows 终端中执行上述命令后,再执行下面的命令,就可以得到能够在 Linux 平台运行的可执行文件了
   go build
  • 编译为 Mac 可执行文件
// Windows 编译 Mac 平台 64 位可执行程序

(1)CMD 终端下执行:
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build

(2)PowerShell 终端下执行:
$ENV:CGO_ENABLED=0
$ENV:GOOS="darwin"
$ENV:GOARCH="amd64"

// 然后,执行
   go build

「 Mac 平台 」

  • 编译为 Windowx 可执行文件
// Mac 编译得到 Windows 平台 64 位可执行程序 
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
  • 编译为 Linux 可执行文件
// Mac 编译得到 Linux 平台 64 位可执行程序 
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build

「 Linux 平台 」

  • 编译为 Windows 可执行文件
// Linux 编译 Mac 平台 64 位可执行程序
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build
  • 编译为 Mac 可执行文件
// Linux 编译 Windows 平台 64 位可执行程序
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build