2010-06-11 9 views
3

Je suis en train de jouer à Go depuis quelques semaines maintenant, jusqu'ici tout va bien. Maintenant, je vous écris un programme à travers différents fichiers fente comme ceci:utilisation de la déclaration d'importation

. 
|-- geometry 
| |-- cone 
| `-- cone.go 
|-- main.go 
|-- Makefile 

le problème est que je ne peux pas importer cone.go dans le main.go, le compilateur ne trouve pas. Quelqu'un?

Répondre

2

Si cela ne vous dérange pas un peu de lecture, this link a une longue discussion sur le problème que vous posez.

Voici une réponse courte.

L'importation recherche le package dans $ GOROOT/pkg (IIRC), il ne semble pas dans les répertoires locaux. Ce que vous pouvez faire est de faire un makefile séparé pour "geometry" en utilisant le makefile go package comprend (see here) et ensuite avoir votre makefile principal faire le paquet et passer le -I pour inclure le nouveau paquet dans ./geometry

+0

je lis en ce moment et il semble que la bonne page pour trouver des réponses. en attendant, j'ai trouvé que l'utilisation de gobuild http://code.google.com/p/gobuild/ résolu le problème, au moins ma configuration simple. – andijcr

0

De l'gc docs:

Flags: 

-o file  
     output file, default 6.out for 6g, etc. 
-e normally the compiler quits after 10 errors; -e prints all errors 
-I dir1 -I dir2  
     add dir1 and dir2 to the list of paths to check for imported packages 
-N disable optimization 
-S write assembly language text to standard output 
-V print the compiler version 

Essayez d'ajouter -I geometry à vos options de compilateur.

+0

-I seul a gagné ' t travail, le paquet doit être compilé en tant que paquet avant l'importation peut le trouver – cthom06