2014-11-01 9 views
14

La mia struttura di cartelle è corretta, posso sia eseguire go install dall'interno della cartella del pacchetto e da qualsiasi punto del sistema, aggiungendo il nome del pacchetto (cartella) dopo install.Vai installazione non crea alcun file bin

Per esempio, il mio lavoro è il seguente:

Go\ 
    bin\ 
    pkg\ 
    src\ 
    name\ 
     file.go 

poi, se corro

cd %GOPATH%\src\name 
go install 

o

go install name 

errori sono generati e il mio lavoro diventa la seguente

Go\ 
    bin\ 
    pkg\ 
    windows_amd64\ <-- new! 
     name.a  <-- new! 
    src\ 
    name\ 
     file.go 

I file del pacchetto sono stati creati correttamente, ma i file bin non lo sono.

mio andare env è la seguente:

C:\Users\...>go env 
set GOARCH=amd64 
set GOBIN=C:\Users\myname\Documents\Go\bin 
set GOCHAR=6 
set GOEXE=.exe 
set GOHOSTARCH=amd64 
set GOHOSTOS=windows 
set GOOS=windows 
set GOPATH=C:\Users\myname\Documents\Go 
set GORACE= 
set GOROOT=C:\Go 
set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64 
set CC=gcc 
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 
set CXX=g++ 
set CGO_ENABLED=1 

Perché è questo il caso? Mi manca qualcosa, faccio qualcosa di sbagliato? Voglio che i file bin vengano creati insieme ai file del pacchetto.

risposta

26

Uno dei motivi potrebbe essere il file.go non è in package main.
si veda ad esempio "Your first program"

Se fosse stato, che avrebbe generato un file eseguibile in bin.

L'articolo "How does the go build command work ?" si fa menzione:

comando A Go è un pacchetto che è nome è main.
I pacchetti principali, o comandi, sono compilati come gli altri pacchetti, ma poi vengono sottoposti a diversi passaggi aggiuntivi per essere collegati all'eseguibile finale.

Problemi correlati