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
:
报错,截图如下所示:
扫描二维码关注公众号,回复: 4018333 查看本文章 -
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
(以上层文件夹的名字命名新文件)