go install/build生成的檔案命名和路徑
1. 寫在前面
本文主要討論go install/build
命令生成的檔案命令和生成路徑問題。將從兩種情況討論:
- 資料夾下只有一個“命令原始碼檔案”
- 資料夾下既有命令原始碼檔案還有其他原始碼檔案
以下實驗主要在windows
環境下完成呢,所以生成的可執行檔案以.exe
字尾結尾
2. 資料夾下只有一個“命令原始碼檔案”
假設一個簡單的命令原始碼檔案所在的工程組織如下所示:
|__ src
|__ jeekTimeProject
|__ test
|__demo1.go
其中demo1.go
ackage name
是 main
//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)
}
-
go build demo1.go
:
在$GOPATH/src/jeekTimeProject/test
目錄下生成可執行檔案demo1.exe
-
go build
:
在$GOPATH/src/jeekTimeProject/test
目錄下生成可執行檔案test.exe
(以上層資料夾的名字命名新檔案) -
go build jeekTimeProject/test
:
在$GOPATH/src/jeekTimeProject/test
目錄下生成可執行檔案test.exe
(以上層資料夾的名字命名新檔案) -
go install demo1.go
:
報錯,截圖如下所示:
-
go install
:
在$GOPATH/bin
目錄下生成可執行檔案test.exe
(以上層資料夾的名字命名新檔案) -
設定完
$GOBIN
環境變數後,執行go install demo1.go
:
在$GOBIN
目錄下生成可執行檔案demo1.exe
-
設定完
$GOBIN
環境變數後,執行go install
:
在$GOBIN
目錄下生成可執行檔案test.exe
3. 資料夾下既有命令原始碼檔案還有其他原始碼檔案
假設一個簡單的命令原始碼檔案所在的工程組織如下所示:
|__ src
|__ jeekTimeProject
|__ test
|__demo1.go
|__demo1_lib.go
其中demo1.go
和demo1_lib.go
的package name
是 main
// 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)
}
-
go build demo1.go
:
報錯,截圖如下所示:
-
go build demo1.go demo1_lib.go
:
在$GOPATH/src/jeekTimeProject/test
目錄下生成可執行檔案demo1.exe
(以原始碼檔案的名字命名新檔案) -
go build
:
在$GOPATH/src/jeekTimeProject/test
目錄下生成可執行檔案test.exe
(以上層資料夾的名字命名新檔案) -
go build jeekTimeProject/test
:
在$GOPATH/src/jeekTimeProject/test
目錄下生成可執行檔案test.exe
(以上層資料夾的名字命名新檔案) -
go install demo1.go
:
報錯,截圖如下所示:
-
go install demo1.go demo1_lib.go
:
報錯,截圖如下所示:
-
go install
:
在$GOPATH/bin
目錄下生成可執行檔案test.exe
(以上層資料夾的名字命名新檔案) -
設定完
$GOBIN
環境變數後,執行go install demo1.go
:
報錯,截圖如下:
-
設定完
$GOBIN
環境變數後,執行go install demo1.go demo1_lib.go
:
在$GOBIN
目錄下生成可執行檔案demo1.exe
-
設定完
$GOBIN
環境變數後,執行go install
:
在$GOBIN
目錄下生成可執行檔案test.exe
(以上層資料夾的名字命名新檔案)