Ich denke das wird funktionieren.
---
Ein Fehler, der auftrat, als ich mit Go entwickelte und versuchte, Pakete mithilfe von Dateien zu trennen.
Ich habe es vorerst gelöst und mir sofort eine Notiz gemacht. .. ..
## Umgebung
Ausführung go version go1.13.14 linux/amd64 centos 7
Verzeichnisaufbau ./ | |--sample/ | | | |--sample.go | |--main.go
## Tatsächlicher Code
#### **`main.go`**
```go
package main
import "./sample"
func main() {
a := sample.Foo("test")
sample.PrintFoo(a)
}
sample.go
package sample
import "fmt"
func Foo(s string) string {
return "aaa " + s + " bbb"
}
func PrintFoo(s string) {
fmt.Println(s)
}
[root@marny ---]# go build -o practice
unexpected directory layout:
import path: _/develop/go/src/test/marny/sample
root: /develop/go/src
dir: /develop/go/src/test/marny/sample
expand root: /develop/go
expand dir: /develop/go/src/test/marny/sample
separator: /
Der Fehler "Unerwartetes Verzeichnislayout:" scheint ein Fehler zu sein, bei dem der Pfad des importierten Pakets nicht angegeben ist.
Ich selbst habe centos7 (vbox) bearbeitet, indem ich es mit samba mit Windows verbunden habe, sodass im Quellcode kein Fehler aufgetreten ist ...
In meinem Fall wird ** $ GOPATH ** als "/ development / go" angegeben. Gemäß den GOPATH-Spezifikationen generiere ich Bins und srcs und entwickle Go, aber hier tritt ein Fehler auf.
Die Lösung besteht darin, import. / Sample
in main.go in den relativen Pfad von $ GOPATH / src
zu ändern.
Deshalb,
main.go
package main
import "test/marny/sample"
func main() {
a := sample.Foo("test")
sample.PrintFoo(a)
}
Ich denke, das wird es lösen.
GOPATH ist nervig.