• Golang 编译命令行


    1. Golang 编译命令行

    1.1. go get

    “go get” command is the standard way of downloading and installing packages and related dependencies.

    • -v: 打印出细节信息
    • -u: update packages and their dependencies, 强制更新。如果不加这个, get 的内容比本地新的话也不会更新, 直接跳过。
    • -d: If you only want to download the source files, and not compile and install, using “go get -d” command
    • -x: check the detailed workflow by “go get -x”, 加入 -x 标记, 这样可以看到 go get 命令执行过程中所使用的所有命令
    标记名称标记描述
    -d让命令程序只执行下载动作, 而不执行安装动作。
    -f仅在使用 -u 标记时才有效。该标记会让命令程序忽略掉对已下载代码包的导入路径的检查。如果下载并安装的代码包所属的项目是你从别人那里 Fork 过来的, 那么这样做就尤为重要了。
    -fix让命令程序在下载代码包后先执行修正动作, 而后再进行编译和安装。
    -insecure允许命令程序使用非安全的 scheme(如 HTTP) 去下载指定的代码包。如果你用的代码仓库 (如公司内部的 Gitlab) 没有 HTTPS 支持, 可以添加此标记。请在确定安全的情况下使用它。
    -t让命令程序同时下载并安装指定的代码包中的测试源码文件中依赖的代码包。
    -u让命令利用网络来更新已有代码包及其依赖包。默认情况下, 该命令只会从网络上下载本地不存在的代码包, 而不会更新已有的代码包。

    1.2. go build

    通过 go build 加上要编译的 Go 源文件名, 我们即可得到一个可执行文件, 默认情况下这个文件的名字为源文件名字去掉 .go 后缀。

    $ go build hello.go
    $ lshello hello.go
    
    • 1
    • 2

    当然我们也可以通过 -o 选项来指定其他名字:

    $ go build -o mygo hello.go
    $ lsmygo hello.go
    
    • 1
    • 2

    如果我们在 go-examples 目录下直接执行 go build 命令, 后面不带文件名, 我们将得到一个与目录名同名的可执行文件:

    $ go build
    $ lsgo-examples hello.go
    
    • 1
    • 2

    1.2.1. go build 不同系统

    Golang 支持在一个平台下生成另一个平台可执行程序的交叉编译功能。

    Mac 下编译 Linux, Windows 平台的 64 位可执行程序:

    CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build test.go
    CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go
    
    • 1
    • 2

    Linux 下编译 Mac, Windows 平台的 64 位可执行程序:

    CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build test.go
    CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go
    
    • 1
    • 2

    Windows 下编译 Mac, Linux 平台的 64 位可执行程序:

    SET CGO_ENABLED=0
    SET GOOS=darwin3
    SET GOARCH=amd64
    go build test.go
    
    SET CGO_ENABLED=0
    SET GOOS=linux
    SET GOARCH=amd64
    go build test.go
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • GOOS: 目标可执行程序运行操作系统, 支持 darwin, freebsd, linux, windows
    • GOARCH: 目标可执行程序操作系统构架, 包括 386, amd64, arm

    Golang version 1.5 以前版本在首次交叉编译时还需要配置交叉编译环境:

    CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ./make.bash
    CGO_ENABLED=0 GOOS=windows GOARCH=amd64 ./make.bash
    
    • 1
    • 2

    1.3. go install

    与 build 命令相比, install 命令在编译源码后还会将可执行文件或库文件安装到约定的目录下。

    go install 编译出的可执行文件以其所在目录名 (DIR) 命名

    go install 将可执行文件安装到与 src 同级别的 bin 目录下, bin 目录由 go install 自动创建

    go install 将可执行文件依赖的各种 package 编译后, 放在与 src 同级别的 pkg 目录下

  • 相关阅读:
    地理数据常用处理
    【算法详解】如何使用递归,递归使用的技巧详解
    Camunda 动态增加会签
    拿下!这些证书可以帮你职场晋升!(PMP/CSPM/NPDP)
    30 天 Pandas 挑战 Day16:reset_index()将结果从 Series转为DataFrame
    使用hashmap优化时间复杂度,leetcode1577
    电机控制从入门到吹牛
    mac装不了python3.7.6
    java的基础用法和常见错误
    [Cocos 3.5.2]开启模型合批
  • 原文地址:https://blog.csdn.net/wan212000/article/details/128079141