
如上圖所示,我在p文件夾和proto文件夾下分別有一個helloworld.proto文件,但是我將執(zhí)行的命令分別寫到了gen.bat中,直接一起執(zhí)行(cd proto && protoc --go_out=plugins=grpc:. *.proto&&cd ..)
也可以在項(xiàng)目根目錄下執(zhí)行:protoc --go_out=plugins=grpc:. ./proto/*.proto , 一條一條的執(zhí)行,? ?其中--go_out:設(shè)置所生成的Go代碼輸出目錄。該指令會加載protoc-gen-go插件,以達(dá)到生成Go代碼的目的。生成的文件以.pb.go為后綴,這里的“:”(冒號)有分隔符的作用,后跟命令所需要的參數(shù)集,這意味著把生成的GO代碼輸出到指向的protoc編譯的當(dāng)前目錄
plugins=plugin1+plugin2:指定要加載的子插件列表。我們定義的proto文件是涉及了RPC服務(wù)的 ,而默認(rèn)是不會生成RPC代碼的,因此需要在go_out中給出plugins參數(shù),將其傳遞給protoc-gen-go插件,即告訴編譯器,請支持RPC(這里指定了內(nèi)置的grpc插件)