douti6740 2018-07-29 20:38
浏览 75

goimports未检测到本地软件包

I have a few packages in separate folders for my golang project that is getting a bit big. I've been trying to create separate packages but don't get detected by goimports

GOPATH="/home/malek/go:/home/malek/Desktop/Workspace"
GORACE=""
GOROOT="/usr/local/go"

My directory is as such,

Workspace -> src -> application -> utility -> math.go

and in my math.go folder, I have package utility

But when I try to do import "application/utility" or when i try to include a public function from the math.go file in my main.go file (in application folder), I get undefined...

What am I doing wrong?

  • 写回答

1条回答 默认 最新

  • doz97171 2018-07-30 00:08
    关注

    You haven't provided us with specific steps to reproduce your problem. I don't see a problem. goimports -w main.go works. For example,

    application/main.go before goimports -w main.go:

    package main
    
    import (
        "fmt"
    )
    
    func main() {
        fmt.Println(utility.PiE())
    }
    

    application/utility/math.go:

    package utility
    
    import "math"
    
    func PiE() float64 { return math.Pi * math.E }
    

    Commands:

    #
    cd $HOME
    cd $HOME/Desktop/Workspace
    rm -f src/application/application
    cp src/application/main.bak src/application/main.go
    tree
    cd $HOME/Desktop/Workspace/src/
    cat application/utility/math.go
    cd application
    export GOPATH=$HOME/gopath:$HOME/Desktop/Workspace
    go env GOPATH
    cat main.go
    go build -a
    goimports -w main.go
    cat main.go
    go build -a && ./application
    #
    

    Output:

    ~$ #
    ~$ cd $HOME
    ~$ cd $HOME/Desktop/Workspace
    ~/Desktop/Workspace$ rm -f src/application/application
    ~/Desktop/Workspace$ cp src/application/main.bak src/application/main.go
    ~/Desktop/Workspace$ tree
    .
    └── src
        └── application
            ├── main.bak
            ├── main.go
            └── utility
                └── math.go
    
    3 directories, 3 files
    ~/Desktop/Workspace$ cd $HOME/Desktop/Workspace/src/
    ~/Desktop/Workspace/src$ cat application/utility/math.go
    package utility
    
    import "math"
    
    func PiE() float64 { return math.Pi * math.E }
    ~/Desktop/Workspace/src$ cd application
    ~/Desktop/Workspace/src/application$ export GOPATH=$HOME/gopath:$HOME/Desktop/Workspace
    ~/Desktop/Workspace/src/application$ go env GOPATH
    /home/peter/gopath:/home/peter/Desktop/Workspace
    ~/Desktop/Workspace/src/application$ cat main.go
    package main
    
    import (
        "fmt"
    )
    
    func main() {
        fmt.Println(utility.PiE())
    }
    ~/Desktop/Workspace/src/application$ go build -a
    # application
    ./main.go:8:14: undefined: utility
    ~/Desktop/Workspace/src/application$ goimports -w main.go
    ~/Desktop/Workspace/src/application$ cat main.go
    package main
    
    import (
        "application/utility"
        "fmt"
    )
    
    func main() {
        fmt.Println(utility.PiE())
    }
    ~/Desktop/Workspace/src/application$ go build -a && ./application
    8.539734222673568
    ~/Desktop/Workspace/src/application$ #
    

    application/main.go after goimports -w main.go:

    package main
    
    import (
        "application/utility"
        "fmt"
    )
    
    func main() {
        fmt.Println(utility.PiE())
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值