es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

protoc-gen-go: no se pudo determinar la ruta de importación de Go para “simple.proto”

Tengo un archivo proto simple con el siguiente contenido.

syntax="proto3";

package main;

message Person {
      string name = 1;
      int32 age = 2; 
}

Estoy tratando de generar código en Go para ello usando protoc. Ejecuto:

protoc --go_out=. simple.proto

Recibo el siguiente error:

protoc-gen-go: no se puede determinar la ruta de importación de Go para "simple.proto"

Por favor, especifique cualquiera de las siguientes opciones:
    • una opción "go_package" en el archivo de origen .proto, o
    • un argumento "M" en la línea de comandos.

Los archivos main.go, go.mod y simple.proto están en la misma carpeta. Tanto protoc como protoc-gen-go están definidos en la variable de entorno PATH.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que la herramienta protoc-gen-go no puede determinar la ruta de importación de Go para el archivo simple.proto. Para resolver este problema, debes especificar una opción go_package en el archivo fuente .proto o un argumento -M en la línea de comandos.

    Para especificar la opción go_package en el archivo fuente .proto, modifica el simple.proto de la siguiente manera:

    syntax="proto3";
    
    package main;
    
    option go_package = "github.com/tunombredeusuario/nombredelproyecto/pb";
    
    message Person {
          string name = 1;
          int32 age = 2; 
    }
    

    Aquí, reemplaza github.com/tunombredeusuario/nombredelproyecto/pb con la ruta de importación real de tu proyecto.

    Ahora, intenta ejecutar el comando protoc nuevamente:

    protoc --go_out=. simple.proto
    

    Si no deseas modificar el archivo .proto, puedes especificar la ruta de importación utilizando el argumento -M en la línea de comandos:

    protoc --go_out=module=github.com/tunombredeusuario/nombredelproyecto/pb:. -I. simple.proto
    

    Aquí, reemplaza github.com/tunombredeusuario/nombredelproyecto/pb con la ruta de importación real de tu proyecto.

    En este comando, la opción -I se utiliza para especificar el directorio donde se encuentra el archivo .proto. El . al final del comando indica a protoc que genere la salida en el directorio actual.

Comments are closed.