Étrange golang paquet d'importation problème

Voici l'arborescence:

+/project  
  +---/bin  
  +---/pkg  
  +---/src  
    +---/client_test  
      +---client_test.go  
    +---main.go  

En main.aller:

package main
import ("client_test")
func main() {
  client_test.Send()
}

Dans client_test.aller:

package client_test
func Send() {
}

Erreur:

src/main.go|8| imported and not used: "client_test"
src/main.go|32| undefined: client_test

J'ai lu Comment utiliser des packages personnalisés en golang? et je pense que j'ai eu la même solution comme ce gars, mais je ne sais pas comment résoudre ce problème. S'il vous plaît aider.

aller env:

GOARCH="amd64"  
GOBIN="/usr/local/go/bin"  
GOCHAR="6"  
GOEXE=""  
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread -fno-common"  
GOHOSTARCH="amd64"  
GOHOSTOS="darwin"  
GOOS="darwin"  
GOPATH="/Users/staff/projects/Minigame_Server" (that's exactly my working directory)  
GOROOT="/usr/local/go"  
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"  
CGO_ENABLED="1"  
  • Qu'est-ce que votre $GOPATH, ou mieux encore, à la sortie de go env?
  • import essaie de trouver le chemin d'accès spécifié à partir de chaque "espace de travail" sont extraits à partir de votre $GOPATH, à tour de rôle. À en juger par votre arbre, je dirais que vos $GOPATH doit contenir /some/path/to/project, qui est, il doit comprendre que le "projet" de répertoire. Est-ce à retenir pour votre cas?
  • OARCH="amd64" GOBIN="/usr/local/go/bin" GOCHAR="6" GOEXE="" GOGCCFLAGS="-g -O2 -fPIC-m64 -pthread -fno-commun" GOHOSTARCH="amd64" GOHOSTOS="darwin" GOOS="darwin" GOPATH="/Users/personnel/projets/Minigame_Server" (c'est exactement mon répertoire de travail) GOROOT="/usr/local/aller" GOTOOLDIR="/usr/local/go/pkg/outil/darwin_amd64" CGO_ENABLED="1"
  • GOPATH doit être "/Users/personnel/projets/Minigame_Server/projet" puis.
  • Je ne pense pas que le "projet" est nécessaire, car il n'est pas indiqué dans le document officiel.
  • IMO la suggestion de Thomas est correct. BTW, si vous êtes en commençant par Aller, je vous recommande d'utiliser GOPATH=$HOME et de mettre les fichiers de paquet du paquet foo dans ~/src/foo/*.go, qui ont alors le chemin d'importation foo. Il fonctionne bien pour moi.
  • J'ai essayé @ThomasKappler 's solution mais ça ne marche toujours pas, je vais essayer de réinstaller l'environnement.
  • le problème, c'est que votre mise en page n'est pas ce que le "document officiel" (je ne sais pas ce que c'est, mais je pense que c'est quelque chose de golang.org) parle. go build suppose que vos projets sont placés sous la $GOPATH/src mais vous avez la src répertoire cadre d'un projet. Ceci est contraire à la politique, que votre projet ressemble en fait à un espace de travail à la go outil.
  • même shitstorm pour moi-même. ne fonctionne pas vraiment comme le java ou le c# n'est ce pas?

InformationsquelleAutor Reck Hou | 2013-03-14