当前位置 博文首页 > go install/build生成的文件命名和路径操作

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

    作者:seafooler 时间:2021-02-13 06:26

    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:

    报错,截图如下所示:

    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:

    报错,截图如下所示:

    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:

    报错,截图如下所示:

    6、go install demo1.go demo1_lib.go:

    报错,截图如下所示:

    7、go install:

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

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

    报错,截图如下:

    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:生成以目录名命名的可执行文件

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

    js
    下一篇:没有了