I have simple proto file with following content.
syntax="proto3";
package main;
message Person {
string name = 1;
int32 age = 2;
}
I am trying to generate go code for it using protoc. I run:
protoc --go_out=. simple.proto
I receive following error:
protoc-gen-go: unable to determine Go import path for "simple.proto"
Please specify either:
• a "go_package" option in the .proto source file, or
• a "M" argument on the command line.
main.go
, go.mod
and simple.proto
is in the same folder. Both protoc
and protoc-gen-go
are defined in PATH enviroement.
Protoc requires that the package be specified, then the solution is to add
option go_package = "./your-package-name";
to make your file looks like the following:
syntax="proto3";
package main;
option go_package = "./your-package-name";
message Person {
string name = 1;
int32 age = 2;
}
then you can run the command e.g:
protoc -I src/ --go_out=src/ src/simple/simple.proto
where --go_out=src/
specifies where your file will be generated then the relative path to your proto file.
Note: Don't forget to prefix the option go_package
with ./
You forgot to linkedlist the file with it by adding:
option go_package = "./";
You need to linkedlist it first to make it work. It was same issues here
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With