Impossibile eseguire go file con go run (nomefile)

2

Ho appena iniziato a entrare in Golang e volevo eseguire un file nel terminale con go run e poi il nome del file che è main.go

Ho configurato GOPATH in questo modo:

export GOROOT="/usr/local/go"   
export GOPATH="/Users/myUsername/Desktop/gocode/"  
export PATH="/Users/myUsername/Desktop/gocode/bin:$PATH"

Ho creato una cartella sul mio desktop chiamata gocode, posizionata tre cartelle all'interno di nome src, pkg e bin.

E il codice è memorizzato in src e quando voglio eseguire il codice ottengo il seguente messaggio.
il mio comando era go run main.go
l'output che ho ricevuto è stato stat main.go: nessun file o directory

Non ho idea del perché non troverà la directory ...

    
posta spk888 29.06.2018 - 12:16
fonte

1 risposta

2

Per eseguire il file .go e non il file binario compilato, devi fornire go run del percorso del file di origine relativo. Prova:

go run src/main.go

Per compilare il programma go in un eseguibile binario, usa:

go build src/main.go

Funzionerà se ...

  • go può essere trovato; prova questo con il comando which go . Restituisce un percorso a go ?
  • Il tuo ambiente GOPATH è impostato in modo appropriato; prova questo con echo $GOPATH . Restituisce la directory del progetto? Vedi vai alla pagina wiki su GOPATH per un consiglio.

Analizza il problema

Apri una nuova finestra di Terminal.app. Questa operazione annullerà i precedenti comandi export che potrebbero causare confusione.

Test go può essere trovato. Usa which go per assicurare che il binario sia disponibile. In caso contrario, risolvi questo problema con un comando export .

Verifica la struttura della directory del tuo progetto. Assicurati che nessun nome sia soddisfatto e che i tuoi file .go abbiano il suffisso corretto. Il Finder potrebbe nascondere il vero suffisso. ls -lR elenca i contenuti che ti aspetti?

Verifica di essere nella directory corretta. I comandi go devono essere eseguiti all'interno della directory del progetto. Usa pwd per vedere in quale directory ti trovi? È la directory di progetto gocode/ ? In caso contrario, utilizza un comando cd per risolvere il problema.

Layout del progetto

Supponiamo che la struttura del tuo file segua la convenzione del minimo:

gocode/
gocode/bin/
gocode/src/
gocode/src/main.go

I tre comandi separati per eseguire main.go sarebbero:

cd gocode
export GOPATH=$PWD
go run src/main.go

Questo esegue la funzione principale in main.go . Per costruire un eseguibile adatto alla distribuzione, usa il comando go build src/main.go .

Gestione delle directory GOPATH

Per quanto riguarda la gestione di gopath e progetti, ho avuto successo con Gestisci più dir GOPATH con facilità approccio.

    
risposta data 29.06.2018 - 14:20
fonte

Leggi altre domande sui tag