dasarpemrogramangolang-example icon indicating copy to clipboard operation
dasarpemrogramangolang-example copied to clipboard

Perintah Pada Artikel Tidak Berjalan Sesuai Penjelasan

Open sykrabadi opened this issue 2 years ago • 0 comments

Halo,

Saya sedang belajar protobuf dari artikel ini, pada artikel tersebut, terdapat perintah untuk men-generate file pb.go dengan perintah cmd sebagai berikut.

cd chapter-c29/model
PATH=$PATH:$GOPATH/bin/ protoc --go_out=. *.proto

Yang saya pahami dari perintah cmd di atas adalah men-generate file pb.go di dalam folder model. Namun, ketika saya menjalankan perintah PATH=$PATH:$GOPATH/bin/ protoc --go_out=. *.proto di komputer saya, saya mendapat error seperti ini.

Screenshot 2022-12-23 130243

Namun, ketika saya menjalankan cmd berikut, file pb.go berhasil ter-generate.

protoc --go_out=. *.proto

Dengan catatan, saya harus menambahkan option go_package di file .proto, sehingga isi dari kedua file .proto adalah sebagai berikut.

syntax = "proto3";

option go_package = "./model";

package model;

message GarageCoordinate {
    float latitude = 1;
    float longitude = 2;
}

message Garage {
    string id = 1;
    string name = 2;
    GarageCoordinate coordinate = 3;
}

message GarageList {
    repeated Garage list = 1;
}

message GarageListByUser {
    map<string, GarageList> list = 1;
}
syntax = "proto3";

option go_package = "./model";

package model;

enum UserGender {
    UNDEFINED = 0;
    MALE = 1; 
    FEMALE = 2;
}

message User {
    string id = 1;
    string name = 2;
    string password = 3;
    UserGender gender = 4;
}

message UserList {
    repeated User list = 1;
}

File .pb.go akan ter-generate di dalam package model sebagai berikut Screenshot 2022-12-23 130700

Apakah ada cara lain supaya file .pb.go tidak ter-generate di package baru seperti pada contoh di atas? apakah ada cmd yang kurang ketika saya menjalankan cmd PATH=$PATH:$GOPATH/bin/ protoc --go_out=. *.proto?

sykrabadi avatar Dec 23 '22 06:12 sykrabadi