1. 程式人生 > >go install/build生成的檔案命名和路徑

go install/build生成的檔案命名和路徑

1. 寫在前面

本文主要討論go install/build命令生成的檔案命令和生成路徑問題。將從兩種情況討論:

  • 資料夾下只有一個“命令原始碼檔案”
  • 資料夾下既有命令原始碼檔案還有其他原始碼檔案
    以下實驗主要在windows環境下完成呢,所以生成的可執行檔案以.exe字尾結尾

2. 資料夾下只有一個“命令原始碼檔案”

假設一個簡單的命令原始碼檔案所在的工程組織如下所示:
|__ src
    |__ jeekTimeProject
        |__ test
            |__demo1.go
其中demo1.go

ackage namemain

//demo1.go
package main

import (
"flag"
)

var name string

func init() {
    flag.StringVar( &name, "name", "everyone", "The greeting object.")
}

func main() {
    flag.Parse()
    fmt.Printf("Hello, %s!\n", name)
}
  1. go build demo1.go:
    $GOPATH/src/jeekTimeProject/test目錄下生成可執行檔案 demo1.exe

    (以原始碼檔案的名字命名新檔案)

  2. go build:
    $GOPATH/src/jeekTimeProject/test目錄下生成可執行檔案 test.exe(以上層資料夾的名字命名新檔案)

  3. go build jeekTimeProject/test:
    $GOPATH/src/jeekTimeProject/test目錄下生成可執行檔案 test.exe(以上層資料夾的名字命名新檔案)

  4. go install demo1.go:
    報錯,截圖如下所示:
    GOBIN not set

  5. go install:
    $GOPATH/bin目錄下生成可執行檔案 test.exe (以上層資料夾的名字命名新檔案)

  6. 設定完$GOBIN環境變數後,執行go install demo1.go:
    $GOBIN目錄下生成可執行檔案demo1.exe

  7. 設定完$GOBIN環境變數後,執行go install:
    $GOBIN目錄下生成可執行檔案test.exe

3. 資料夾下既有命令原始碼檔案還有其他原始碼檔案

假設一個簡單的命令原始碼檔案所在的工程組織如下所示:
|__ src
    |__ jeekTimeProject
        |__ test
            |__demo1.go
            |__demo1_lib.go
其中demo1.godemo1_lib.gopackage namemain

// demo1.go
package main

import (
"flag"
)

var name string

func init() {
    flag.StringVar( &name, "name", "everyone", "The greeting object.")
}

func main() {
    flag.Parse()
    hello(name)
}
//demo1_lib.go
package main

import "fmt"

func hello(name string) {
    fmt.Printf("Hello, %s!\n", name)
}
  1. go build demo1.go:
    報錯,截圖如下所示:
    undefined

  2. go build demo1.go demo1_lib.go:
    $GOPATH/src/jeekTimeProject/test目錄下生成可執行檔案 demo1.exe(以原始碼檔案的名字命名新檔案)

  3. go build:
    $GOPATH/src/jeekTimeProject/test目錄下生成可執行檔案 test.exe(以上層資料夾的名字命名新檔案)

  4. go build jeekTimeProject/test:
    $GOPATH/src/jeekTimeProject/test目錄下生成可執行檔案 test.exe(以上層資料夾的名字命名新檔案)

  5. go install demo1.go:
    報錯,截圖如下所示:
    GOBIN not set

  6. go install demo1.go demo1_lib.go:
    報錯,截圖如下所示:
    GOBIN not set

  7. go install:
    $GOPATH/bin目錄下生成可執行檔案 test.exe (以上層資料夾的名字命名新檔案)

  8. 設定完$GOBIN環境變數後,執行go install demo1.go:
    報錯,截圖如下:
    undefined

  9. 設定完$GOBIN環境變數後,執行go install demo1.go demo1_lib.go:
    $GOBIN目錄下生成可執行檔案demo1.exe

  10. 設定完$GOBIN環境變數後,執行go install:
    $GOBIN目錄下生成可執行檔案test.exe(以上層資料夾的名字命名新檔案)