我正在尝试进行本地导入,但是失败。
我的环境是:
echo $GOPATH
/home/peter/go
echo $GOROOT
/usr/local/go
入口点是:
/home/peter/go/src/projects/pkgs1/main.go
导入的文件为:
/home/peter/go/src/projects/pkgs2/stuff.go
main.go
package main
import (
"fmt"
"projects/pkgs2" // <- this does not resolve
)
func main(){
fmt.Println("123")
pkgs2.X()
}
stuff.go
package pkgs2
import "fmt"
func X(){
fmt.Println("X")
}
关于我做错了什么的指示?
答案 0 :(得分:2)
您的导入路径是正确的,应该可以成功解析,但是按照编写的程序,由于未使用导入并且没有名为x
的本地函数,因此程序无法编译。
如mkopriva所述,不会导出pkgs2中的x
函数,并且在尝试在主软件包中使用它时还没有限定它的功能。
要导出功能,它必须以大写字母开头。
要在其他程序包中使用该功能,需要在程序包名称之前添加功能名称。
main.go
package main
import (
"fmt"
"projects/pkgs2"
)
func main(){
fmt.Println("123")
pkgs2.X()
}
stuff.go
package pkgs2
import "fmt"
func X(){
fmt.Println("X")
}