No se puede ejecutar el archivo go con go run (nombre de archivo)

2

Acabo de empezar a entrar en Golang y quería ejecutar un archivo en el terminal con go run y luego el nombre del archivo que es main.go

Configuré el GOPATH así:

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

Creé una carpeta en mi escritorio llamada gocode, coloqué tres carpetas dentro de src, pkg y bin.

Y el código se almacena en src y cuando quiero ejecutar el código recibo el siguiente mensaje.
mi comando fue go run main.go
la salida que recibí fue stat main.go: no existe tal archivo o directorio

No tengo idea de por qué no encontrará el directorio ...

    
pregunta spk888 29.06.2018 - 12:16

1 respuesta

2

Para ejecutar el archivo .go y no el binario compilado, debe proporcionar a go run la ruta relativa del archivo fuente. Prueba:

go run src/main.go

Para compilar el programa go en un ejecutable binario, use:

go build src/main.go

Esto funcionará si ...

  • Se puede encontrar go ; prueba esto con el comando which go . ¿Devuelve una ruta a go ?
  • Su entorno GOPATH está configurado adecuadamente; prueba esto con echo $GOPATH . ¿Devuelve el directorio del proyecto? Consulta ve a la página wiki en GOPATH para obtener consejos.

Desglosa el problema

Abre una nueva ventana de Terminal.app. Esto descartará los comandos export anteriores que puedan estar causando confusión.

Se puede encontrar la prueba go . Use which go para asegurarse de que el binario esté disponible. Si no, corríjalo con un comando export .

Verifique la estructura del directorio de su proyecto. Asegúrese de que no haya nombres mal escritos y que los archivos .go tengan el sufijo correcto. El Finder puede estar escondiendo el verdadero sufijo. ¿ ls -lR enumera los contenidos que espera?

Comprueba que estás en el directorio correcto. Los comandos go deben ejecutarse desde el directorio del proyecto. Usa pwd para ver en qué directorio estás? ¿Es el directorio del proyecto gocode/ ? Si no, usa un comando cd para arreglar esto.

Diseño del proyecto

Supongamos que su estructura de archivos sigue la convención de uso mínimo:

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

Los tres comandos separados para ejecutar main.go serían:

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

Esto ejecutará la función principal dentro de main.go . Para crear un ejecutable adecuado para su distribución, use el comando go build src/main.go .

Gestionando los directorios de GOPATH

Con respecto a la gestión de gopaths y proyectos, he tenido éxito con Herbert Fischer Administre múltiples direcciones GOPATH con facilidad Enfoque.

    
respondido por el Graham Miln 29.06.2018 - 14:20

Lea otras preguntas en las etiquetas