Go run/build 找不到源文件

我正在尝试运行一个简单的 hello world 样式程序,该程序从单独的自定义包中导入打印功能,但尽管$GOPATH设置了正确的等,Go 仍无法找到它。


缺少什么会使文件被拾取?


etherk1ll@ubuntu:~/Development/GoWorkSpace/src/sonarparser$ echo $GOPATH 

/home/etherk1ll/Development/GoWorkSpace/

etherk1ll@ubuntu:~/Development/GoWorkSpace/src/sonarparser$ pwd

/home/etherk1ll/Development/GoWorkSpace/src/sonarparser

etherk1ll@ubuntu:~/Development/GoWorkSpace/src/sonarparser$ ls

jsonparser.go  main.go

etherk1ll@ubuntu:~/Development/GoWorkSpace/src/sonarparser$ go run main.go 

main.go:5:2: cannot find package "sonarparser/jsonparser" in any of:

    /usr/local/go/src/sonarparser/jsonparser (from $GOROOT)

    /home/etherk1ll/Development/GoWorkSpace/src/sonarparser/jsonparser (from $GOPATH)

main.go


package main


import (

    "fmt"

    "jsonparser"

)


func main() {

    fmt.Println("Hello world 1")

    fmt.Println(jsonparser.HelloTwo)

}

jsonparser.go


package jsonparser


import "fmt"


func HelloTwo() {

    fmt.Println("Hello world 2")

}


RISEBY
浏览 195回答 1
1回答

慕桂英4014372

因为jsonparser.go和main.go位于同一个包中,Go 要求这些文件具有相同的包名。并且因为您为执行定义了 main 函数,所以包必须是“main”。第 1 步:所以您应该将jsonparser.go的包重命名为main.// jsonparser.gopackage mainimport "fmt"func HelloTwo() {    fmt.Println("Hello world 2")}第 2 步:您需要更新main.go文件以更正导入路径:// main.gopackage mainimport (    "fmt")func main() {    fmt.Println("Hello world 1")    HelloTwo()}第 3 步:然后运行以下命令(您必须在命令中包含所有必要的文件)go run main.go jsonparser.go
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go