gpt4 book ai didi

go - 运行/构建无法找到源文件

转载 作者:行者123 更新时间:2023-12-01 22:14:57 25 4
gpt4 key购买 nike

我正在尝试运行一个简单的hello世界风格程序,该程序从单独的自定义程序包中导入打印功能,但是尽管设置了正确的$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")
}

最佳答案

由于jsonparser.gomain.go位于同一程序包中,因此Go要求这些文件具有相同的程序包名称。并且因为您定义了执行的主要功能,所以程序包必须为“主要”。

步骤1:因此,您应该将jsonparser.go的包重命名为main

// jsonparser.go
package main

import "fmt"

func HelloTwo() {
fmt.Println("Hello world 2")
}

步骤2:您需要更新 main.go文件以更正导入路径:
// main.go
package main

import (
"fmt"
)

func main() {
fmt.Println("Hello world 1")
HelloTwo()
}

步骤3:然后运行以下命令(您必须在命令中包含所有必需的文件)
go run main.go jsonparser.go

关于go - 运行/构建无法找到源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61045157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com