soluzione reale:
ho riprodotto la questione con:
- chiamando il 1.1.2
go.exe
direttamente (non ho avuto %GOROOT%\bin
nel mio percorso)
- con
GOROOT
che punta al precedente 1.1.1 cartella di installazione (ho mantenuto andare 1.1.1 e 1.1.2 installato in cartelle separate).
Se si sta attaccando con la configurazione di default Go (vale a dire: directory di installazione di unaC:\go
e %GOROOT%\bin
nel vostro PATH
), non sarà possibile visualizzare questo errore.
Ma se questo errore:
- assicurarsi
%GOROOT%
è coerente con la go.exe
che si sta chiamando
go install -a
come spiegato di seguito. Il go clean
indicato di seguito non sarà necessario.
Come jnmlcomments:
the Go build system is supposed to figure out any obsolete stuff in $GOPATH/pkg
and (transitively) rebuild it on demand.
soluzione originale:
Nella sezione "file oggetto Rimuovere" della pagina "Command go", mi mancava l'opzione go clean -i
:
-i
The -i
flag causes clean to remove the corresponding installed archive or binary (what 'go install' would create).
E quelli file .a
(come hopwatch.a) sono esattamente ciò che genera l'installazione per le librerie (in Windows).
Così il comando clean completo, per assicurarsi che andare ricostruire tutto, sarebbe:
cd C:\Users\VonC\prog\go\src\github.com\spf13\hugo
go clean -r -i
go install -a
che ricostruirà e installare tutto, compresi tutti i pacchetti dipendenti.
-a
è in realtà un'opzione di compilazione, che impone la ricostruzione di pacchetti già aggiornati.
Come al solito, go clean -r -n
sarebbe mostrarvi quello che sarebbe stato pulito (-n
: opzione di anteprima).
Non fa male sapere cosa verrà eliminato ... prima di eliminare effettivamente qualcosa.
Sono sorpreso dal fatto che il sistema di build di Go suppone di capire qualsiasi roba obsoleta in $ GOPATH/pkg e (in modo transitorio) ricostruirlo su richiesta. – zzzz
@jnml Sono d'accordo. Ha mancato le dipendenze, ma forse perché non ho usato 'go build -a' inizialmente? – VonC
@jnml capito. Ho trovato l'incongruenza nella mia configurazione di go che ha attivato quel messaggio di errore. Ho modificato la mia risposta qui sotto. – VonC