目录

下载

Downloads - The Go Programming Language

注意:系统、架构

安装

  • windows、mac

    下载的是安装包,根据安装提示安装后,会自动加入path,执行 go version 查看是否正常输出golang版本号。

  • linux

    下载压缩包,解压即可,加入path路径

    rm -rf /usr/local/go && tar -C /usr/local -xzf go1.17.1.linux-amd64.tar.gz
    
    export PATH=$PATH:/usr/local/go/bin
    
    #查看版本
    go version
    

Download and install - The Go Programming Language

代理

由于墙的原因,经常下载包难以成功,我们可以使用代理:

go env -w GOPROXY=https://goproxy.cn,direct

mod初始化

go mod init <指定项目模块的命名空间>

编译

go build

交叉编译

Go语言支持交叉编译,在一个平台上生成另一个平台的可执行程序。

需要注意的是:golang在支持cgo的时候是没法交叉编译的。

  • 概念

    GOOS:目标平台的操作系统(darwin、freebsd、linux、windows)

    GOARCH:目标平台的体系架构(386、amd64、arm)

  • Mac 下编译 Linux 和 Windows 64位可执行程序

    CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
    CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
    
  • Linux 下编译 Mac 和 Windows 64位可执行程序

    CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build
    CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
    
  • Windows 下编译 Mac 和 Linux 64位可执行程序

    SET CGO_ENABLED=0
    SET GOOS=darwin
    SET GOARCH=amd64
    go build
    
    SET CGO_ENABLED=0
    SET GOOS=linux
    SET GOARCH=amd64
    go build
    

注意:

  • windows下面 powershell不行,要cmd
  • 如果使用到c或C++调用的话,win下是无法忽略CGO进行编译,也就是编译会失败,比如使用到sqlite3

参考

Documentation - The Go Programming Language

go包管理代理

go proxy