DDR爱好者之家 Design By 杰米

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)
}

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:

报错,截图如下所示:

go install/build生成的文件命名和路径操作

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.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)
}

1、go build demo1.go:

报错,截图如下所示:

go install/build生成的文件命名和路径操作

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:

报错,截图如下所示:

go install/build生成的文件命名和路径操作

6、go install demo1.go demo1_lib.go:

报错,截图如下所示:

go install/build生成的文件命名和路径操作

7、go install:

在$GOPATH/bin目录下生成可执行文件 test.exe (以上层文件夹的名字命名新文件)

8、设置完$GOBIN环境变量后,运行go install demo1.go:

报错,截图如下:

go install/build生成的文件命名和路径操作

9、设置完$GOBIN环境变量后,运行go install demo1.go demo1_lib.go:

在$GOBIN目录下生成可执行文件demo1.exe

10、设置完$GOBIN环境变量后,运行go install:

在$GOBIN目录下生成可执行文件test.exe(以上层文件夹的名字命名新文件)

补充:go build后加文件和目录的区别

go build + xxx.go:生成以xxx命名的可执行文件

go build + dir / go build . / go build:生成以目录名命名的可执行文件

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。

DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?